创建第一个节点

一旦Node-RED运行起来,那么你就可以利用一个本地浏览器,通过http://localhost:1880来访问它。如果你能获得Node-RED实例的ip地址或名称,还可以利用其它机器上的浏览器,通过http://{Node-RED-machine-ip-address}:1880对其进行访问。

1. 加入Inject节点

Inject节点允许你以点击节点按钮(手动)或设置时间间隔(自动)的方式,向流程中注入消息。

从节点面板中向工作区中拖入一个Inject节点。

打开边栏(Ctrl加空格键,或者通过下拉菜单),选择信息标签。

选中新加入的Inject节点,仔细查看其相关功能和属性信息。

2. 加入Debug节点

Debug节点的作用是产生能够显示在调试面板中的消息。默认它只显示消息的载荷部分内容,但也可以通过设定,显示整个消息对象。

3. 连接节点

通过在一个节点的输出端口和另一个节点的输入端口之间拖拽,将Inject和Debug节点连接起来。

4. 部署

此时的节点还只存在于编辑器中,必须将其部署到服务器上。

要做到这点,只需点击一下部署按钮,就可以了。

在选中边栏上调试标签的情况下,点击Inject按钮,应该可以在边栏中看到出现的数字。默认情况下,Inject节点使用自1970年1月1日以来的毫秒数作为消息载荷。接着,我们再增加一下有用的功能。

5. 加入Function节点

Function节点允许你将接受到的消息传递给JavaScript函数。

如果要在Inject和Debug节点之间,连入Function节点,需要先删除已有的连线(选取连线,然后点击键盘上的删除键)。

在Function节点上双击后,将会弹出一个编辑器窗口,将以下代码复制到其中的函数输入区域:

// Create a Date object from the payload
var date = new Date(msg.payload);
// Change the payload to be a formatted Date string
msg.payload = date.toString();
// Return the message so it can be sent on
return msg;

点击确定关闭编辑器窗口,然后再点击部署按钮。

此时,当你点击Inject按钮时,出现在边栏中消息的可读性将明显变好。


源码

本例中创建的流程采用以下json形式表示,我们可以把它们粘贴到导入窗口中,这样就可以直接将流程导入到编辑器中。

[{"id":"58ffae9d.a7005","type":"debug","name":"","active":true,"complete":false,"x":640,"y":200,"wires":[]},{"id":"17626462.e89d9c","type":"inject","name":"","topic":"","payload":"","repeat":"","once":false,"x":240,"y":200,"wires":[["2921667d.d6de9a"]]},{"id":"2921667d.d6de9a","type":"function","name":"Format timestamp","func":"// Create a Date object from the payload\nvar date = new Date(msg.payload);\n// Change the payload to be a formatted Date string\nmsg.payload = date.toString();\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"x":440,"y":200,"wires":[["58ffae9d.a7005"]]}]