如何在node-red中输出多个msg.payload的列表?

时间:2017-11-03 09:07:31

标签: node.js list node-red

我有多个节点(例如日期+服务器状态消息(通过http get)),我想在节点红色仪表板上显示最后x条消息的列表。我找不到这个节点/ npm包,我想我可以使用标准包吗?

列表示例:

  • 1-3-17 - 状态:在线
  • 1-2-17 - 状态:离线
  • 1-2-17 - 状态:确定
  • 1-1-17 - 状态:错误

这里的消息处理不是问题,但如果有新的输入和删除列表中的第x个条目?

1 个答案:

答案 0 :(得分:1)

听起来您需要了解如何使用context来存储数据。

执行此操作的最简单方法是在函数节点中,如下所示:

var list = context.get("statusList") || [];
var date = new Date().toLocaleDateString();
var entry = date + " - " + msg.payload;
list.push(entry);
if (list.length > 5) {
  list = list.slice(-5);
}
context.put("statusList", list);
msg.payload = list;
return msg;

这应该保留最后5个输入消息和输出以及包含这5个消息的数组。