node-red 使用仪表板节点显示 mysql 结果

node-red displaying msyql results using the dashboard node

新手问题:我已经开始使用 node-red 并认为它可能是 node.js(以及 javascript 的一种很好的入门药物)。但是我已经有点卡住了。

我有一个流程正在对 mysql 数据库执行非常简单的查询。我得到了返回给我的结果,但到目前为止我还无法以任何有意义的方式解析这些结果。看起来结果作为一个数组返回,但我如何在函数中访问和操作该数组?下面是从 mysql 节点传入的数据:

[
  { "at_time": "2017-03-27T18:33:46.000Z", "event": "gone_to_bed" },
  { "at_time": "2017-03-27T22:14:02.000Z", "event": "woke_up" },
  { "at_time": "2017-03-27T22:14:12.000Z", "event": "food" },
  { "at_time": "2017-03-28T00:13:42.000Z", "event": "woke_up" },
  { "at_time": "2017-03-28T03:50:15.000Z", "event": "woke_up" },
  { "at_time": "2017-03-28T05:12:33.000Z", "event": "woke_up" },
  { "at_time": "2017-03-28T05:12:38.000Z", "event": "food" },
  { "at_time": "2017-03-28T06:56:29.000Z", "event": "up_for_day" },
  { "at_time": "2017-03-28T18:08:49.000Z", "event": "gone_to_bed" },
  { "at_time": "2017-03-28T18:32:48.000Z", "event": "woke_up" }
]

谢谢!

JavaScript 数组有很多函数可以帮助您处理它们的内容。这个主题太宽泛了,如果没有详细说明您具体想要做什么,就无法提供简洁的答案。

如您所见,Node-RED 是使用 JavaScript 构建的,其 Function 节点也不例外。

假设您的函数正在接收该数组作为 msg.payload,您将使用以下语法来访问各种元素:

var firstElement = msg.payload[0];
var secondElement = msg.payload[1];

等等。

该数组的每个元素似乎都是一个 JavaScript 对象 - 具有 key/value 对。要访问这些值,您可以使用以下语法:

var first_at_time = firstElement.at_time;
var first_event = firstElement.event;

这些是 javascript 的基本操作,有很多可用的指南可以向您介绍它们,例如:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Arrays