如何在node-red中输出多个msg.payload的列表?
How to output a list of multiple msg.payload in node-red?
我有多个节点(例如日期 + 服务器状态消息(通过 http get)),我想在节点红色仪表板上显示最后 x 条消息的列表。我找不到这个的节点/npm 包,我想我可以用标准包来做?
列表示例:
- 1-3-17 - 状态:在线
- 1-2-17 - 状态:离线
- 1-2-17 - 状态:正常
- 1-1-17 - 状态:差
消息处理不是这里的问题,但是如果有新条目进来,如何输出和删除列表中的第x 个条目?
听起来你需要看看如何使用 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 个消息的数组。
我有多个节点(例如日期 + 服务器状态消息(通过 http get)),我想在节点红色仪表板上显示最后 x 条消息的列表。我找不到这个的节点/npm 包,我想我可以用标准包来做?
列表示例:
- 1-3-17 - 状态:在线
- 1-2-17 - 状态:离线
- 1-2-17 - 状态:正常
- 1-1-17 - 状态:差
消息处理不是这里的问题,但是如果有新条目进来,如何输出和删除列表中的第x 个条目?
听起来你需要看看如何使用 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 个消息的数组。