当前我正尝试使用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代码。