问题描述
由于文档说它支持节点位于https://nodered.org/docs/api/admin/methods/post/nodes的路径,所以我尝试使用POST / nodes。 但是POST / nodes仅在服务器在localhost中运行时才有效,有人知道是否可以使用http api将节点安装在远程服务器中?
这是我尝试过的POST的示例:
curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -i http://REMOTE_SERVER_HOSTNAME:1880/nodes --data '{"module": "/tmp/testRemoteInstall"}'
解决方法
根据您指向的文档
模块:
从npm存储库中安装的节点模块的名称, 或包含节点模块的目录的完整路径。注意:这个 api不支持npm使用的所有模块说明符 例如.tgz文件或版本限定符。
这意味着module
参数必须是以下其中之一:
- 可从npmjs.org获得的NodeJS模块的名称
- NodeJS模块的本地实例的路径。 (此路径必须是运行Node-RED的计算机的本地路径,否则Node-RED应该如何访问远程文件?)
您有2个选择,
- 将要安装的模块发布到npmjs(或另一个NodeJS存储库,并确保服务器上的npm已正确配置为从此处安装)
- 在将本地路径作为
module
的值传递之前,将节点的目录复制到与Node-RED相同的计算机上