使用HTTP API安装节点红色节点时返回代码MODULE_NOT_FOUND



当前我正尝试使用HTTP POST在NodeRED中安装node/使用以下curl命令安装node:

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -i http://localhost:1880/nodes -d "{"module": "C:\test\testRemoteNodeWindow"}"

但我收到了一个400坏的请求响应,这个:

{"代码":"MODULE_NOT_FOUND","消息":"找不到模块"C:\test\testRemoteNodeWindow"}

但我注意到,该节点被添加为node_red_config/package.json 的依赖项

{
"name": "node-red-project",
"description": "A Node-RED Project",
"version": "0.0.1",
"private": true,
"dependencies": {
"testRemoteNodeWindow": "file:testRemoteNodeWindow"
}
}

符号链接是在node_red_config/node_modules中创建的,问题只发生在Windows中。奇怪的是,我在Linux机器中使用相同的node/node red/npm版本,并且该节点是使用HTTP POST/node创建的,没有任何问题。有人知道这可能是配置问题还是类似的问题吗?当做

MODULE_NOT_FOUND错误意味着,虽然它已成功运行模块的npm install,但运行时无法找到具有该名称的有效Node RED模块。

这通常意味着您的模块在其package.json文件中没有node-red部分,如本文所述。否则,运行时不会将该模块识别为有效的Node RED模块。

我发现了这个问题,这与我使用的Windows路径有关,例如:

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:1880/nodes -d "{"module": "C:/test/testRemoteNodeWindow"}"

节点已经安装,我得到HTTP 200响应,但如果我使用:

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -i http://localhost:1880/nodes -d "{"module": "C:\test\testRemoteNodeWindow"}"

我得到了MODULE_NOT_FOUND代码。

最新更新