我想合并来自 3 个不同来源的数据(来自 HTTP msg.payload)。
但是,这些 HTTP 请求可能会被多次调用,因此可以多次接收来自同一来源的数据。
[{"id":"7ed13b41.131b14","type":"join","z":"246eac57.42ec74","name":"","mode":"auto","build":"string","property":"payload","propertyType":"msg","key":"index","joiner":"","joinerType":"str","accumulate":false,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1370,"y":1160,"wires":[["d941ca6e.0e1aa8"]]},{"id":"d941ca6e.0e1aa8","type":"debug","z":"246eac57.42ec74","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1490,"y":1120,"wires":[]},{"id":"b04a312.d6c40d","type":"function","z":"246eac57.42ec74","name":"part 1","func":"msg.parts = {};\nmsg.parts.id = 12345;\nmsg.parts.index = 0;\nmsg.parts.count = 3;\nreturn msg;","outputs":1,"noerr":0,"x":1210,"y":1120,"wires":[["7ed13b41.131b14"]]},{"id":"30cec12.e2fc13e","type":"function","z":"246eac57.42ec74","name":"part 2","func":"msg.parts = {};\nmsg.parts.id = 12345;\nmsg.parts.index = 1;\nmsg.parts.count = 3;\nreturn msg;","outputs":1,"noerr":0,"x":1210,"y":1160,"wires":[["7ed13b41.131b14"]]},{"id":"8902f2d5.ea688","type":"function","z":"246eac57.42ec74","name":"part 3","func":"msg.parts = {};\nmsg.parts.id = 12345;\nmsg.parts.index = 2;\nmsg.parts.count = 3;\nreturn msg;","outputs":1,"noerr":0,"x":1210,"y":1200,"wires":[["7ed13b41.131b14"]]},{"id":"814f25b6.dd3958","type":"http in","z":"246eac57.42ec74","name":"source 1","url":"/source1","method":"get","upload":false,"swaggerDoc":"","x":1060,"y":1120,"wires":[["b04a312.d6c40d"]]},{"id":"cab634ac.5d9df8","type":"http in","z":"246eac57.42ec74","name":"source 2","url":"/source 2","method":"get","upload":false,"swaggerDoc":"","x":1060,"y":1160,"wires":[["30cec12.e2fc13e"]]},{"id":"98f89b04.9b5bb8","type":"http in","z":"246eac57.42ec74","name":"source 3","url":"/source3","method":"get","upload":false,"swaggerDoc":"","x":1060,"y":1200,"wires":[["8902f2d5.ea688"]]}]
Run Code Online (Sandbox Code Playgroud)
此流程中发生的情况是,当加入节点从源 1 接收 3 条消息时,它认为已msg.parts完成。我想要实现的行为是,只有当收到来自 3 个来源的数据时,流程才会继续。如果从同一来源接收数据,它只会覆盖以前的数据。
有没有办法在 Node-RED 中实现这一点?
Node-red 版本:0.19.5
PM2 版本:3.2.3
操作系统:Windows Embedded Standard 7(在 ICO300 上运行,8GB RAM)
重现步骤
pm2 start node-redpm2 logs node-red结果
我收到以下错误:
0|node-red | SyntaxError: Invalid or unexpected token
0|node-red | at new Script (vm.js:79:7)
0|node-red | at createScript (vm.js:251:10)
0|node-red | at Object.runInThisContext (vm.js:303:10)
0|node-red | at Module._compile (internal/modules/cjs/loader.js:656:28)
0|node-red | at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
0|node-red | at Module.load (internal/modules/cjs/loader.js:598:32)
0|node-red | at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
0|node-red | at …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建自定义节点,我正在尝试非常简单的一个。我需要使用节点的属性(用户从下拉列表中选择的值)通过 msg.payload 发送/输出该属性的值。
这是调试选项卡中的错误消息:
4/7/2017 21.45.06node: lolo
msg : error
"ReferenceError: $ is not defined"
Run Code Online (Sandbox Code Playgroud)
这是所需的输出:
“ppp[洛洛:m2]”
我删除了 js 文件中带有 $ 的行,因为它无法识别 jQuery。我用这个代替
msg.payload = msg.payload +"[" + nodeName+":"+ node.axis +"]";
Run Code Online (Sandbox Code Playgroud)
但在输出中,选项值未定义,而不是选择下拉列表中选项之一的值:
5/7/2017 11.34.22node: 5aa4aa59.f9fa04
msg.payload : string[19]
"ppp[lolo:undefined]"
Run Code Online (Sandbox Code Playgroud)
这是节点的 html 文件:
4/7/2017 21.45.06node: lolo
msg : error
"ReferenceError: $ is not defined"
Run Code Online (Sandbox Code Playgroud)
这是节点的 js 文件:
msg.payload = msg.payload +"[" + nodeName+":"+ node.axis +"]";
Run Code Online (Sandbox Code Playgroud)
我知道您可以在设置文件中或通过 PORT 环境变量设置 UI 的端口,这也是用于“http in”节点的端口,但是我如何为这两个目的指定不同的端口?
问候我正在配置一个节点红色的服务器,在应用Nginx重定向后,出现了以下问题。

使用Nginx将子域node-red.domain.com重定向到localhost:1880之后
Nginx重定向配置:
server {
listen 80;
server_name sub1.domain.com;
location / {
proxy_pass "https://127.0.0.1:8080";
}
}
server {
listen 80;
server_name sub2.domain.com;
location / {
proxy_pass "https://127.0.0.1:8080";
}
}
Run Code Online (Sandbox Code Playgroud)
请任何人可以帮助我吗?
我已经尝试了很多个小时,尝试了很多事情,所以我现在必须问。在我的 docker 上,我无法让 nodered 在其上运行。我总是收到共享卷的权限错误。我的另一个“fhem”容器确实以相同的文件夹权限运行。所以我不明白为什么这对nodered来说是一个问题。
目前我正在使用最新版本的ubuntu。
我想将 nodered 实例中的 /data 文件夹存储在 /opt/docker-nodered 中,但这不起作用。
我尝试使用以下命令安装它:
docker run -it -p 1880:1880 -v /opt/docker-nodered/:/data --name nodered nodered/node-red-docker
Run Code Online (Sandbox Code Playgroud)
这里的权限如下:
stefmde@homeautomation:/opt$ ll
total 16
drwxr-xr-x 4 stefmde stefmde 4096 Sep 24 09:52 ./
drwxr-xr-x 23 root root 4096 Sep 21 18:56 ../
drwxr-xr-x 10 stefmde stefmde 4096 Sep 22 12:48 docker-fhem/
drwxr-xr-x 2 stefmde stefmde 4096 Sep 24 14:01 docker-nodered/
Run Code Online (Sandbox Code Playgroud)
我用以下内容更改了它们以尝试使其运行:
chown -R stefmde:stefmde /opt/docker-nored
Run Code Online (Sandbox Code Playgroud)
但无论我尝试什么,我总是遇到同样的错误:
stefmde@homeautomation:/opt/docker-nodered$ sudo docker run -it -p 1880:1880 -v /opt/docker-nodered/:/data …Run Code Online (Sandbox Code Playgroud) 我需要在 Node-red 中抓取一个网站,但我不确定应该如何做。
我知道如何在 Google 电子表格中抓取网站,但我不知道如何对 node-red 中的 html 节点执行相同的操作。
这是我在 Google 电子表格中使用的:
=index(importxml("https://www.website.dom";"//h2[@class='item-title']");1)
我在node-red上遇到问题,无法再运行任何流程,我不确定该怎么办。
我收到以下错误
Imported unrecognised type: mqtt-env-broker
Flows stopped due to missing node types. Check logs for details.
Run Code Online (Sandbox Code Playgroud)
试图从调色板中删除此模块,但出现以下错误,我也无法禁用它
Failed to remove: node-red-contrib-mqtt-env
Error: Type in use: mqtt-env-broker
Check the log for more information
Run Code Online (Sandbox Code Playgroud)
我已经安装了node-red-admin并试图从命令行中删除它,所以我发出了以下命令
sudo node-red-admin remove node-red-contrib-mqtt-env/mqtt-env
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
404: Cannot DELETE /nodes/node-red-contrib-mqtt-env/mqtt-env
Run Code Online (Sandbox Code Playgroud)
这是我运行以下命令时得到的
node-red-admin list
Nodes Types State
node-red-contrib-mqtt-env/mqtt-env mqtt-env in error
mqtt-env out
mqtt-env-broker
node-red-dashboard/ui_audio ui_audio enabled
...
...
node-red/mqtt mqtt in error
mqtt out
mqtt-broker
Run Code Online (Sandbox Code Playgroud) 我需要重定向到另一个网址.我使用nodered来请求一个url,然后获取用户名和密码,在cloudant数据库中检查它们,并且在确认它们存在之后,我需要重定向到另一个/ home.是否有重定向的节点?我尝试使用http请求节点,但它只是在json或二进制中获取响应而不重定向url.如何在nodered中重定向?