#node.js #node-red
#node.js #узел-красный
Вопрос:
В настоящее время я пытаюсь установить узел в NodeRed с помощью HTTP POST / nodes, используя следующую команду curl:
curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -i http://localhost:1880/nodes -d "{"module": "C:\test\testRemoteNodeWindow"}"
Но я получаю 400 неверных ответов на запрос, этот:
{«code»: «MODULE_NOT_FOUND»,»message»: «Не удается найти модуль ‘C:testtestRemoteNodeWindow ‘»}
Но я заметил, что узел был добавлен как зависимость к 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 странно то, что я использую ту же версию node / node-red / npm на компьютере Linux, и узел создается с использованием HTTP POST / node без каких-либо проблем. Кто-нибудь знает, может ли это быть проблемой конфигурации или чем-то подобным?
С уважением.
Ответ №1:
MODULE_NOT_FOUND
Ошибка означает, что, хотя он успешно запустил npm install
ваш модуль, среда выполнения не смогла найти допустимый модуль Node-RED с этим именем.
Обычно это означает, что в вашем модуле нет node-red
раздела в его package.json
файле, как описано здесь. Без этого среда выполнения не распознает модуль как допустимый модуль Node-RED.
Комментарии:
1. Но точно такой же узел устанавливается на узловом сервере, который работает в Linux, и NodeRed определяет его как узел, я проверил свой package.json, и он соответствует документации, чтобы быть распознанным как узел.
2. Загружается ли модуль в Windows, если вы используете npm для его установки вручную в
userDir
?3. Да, если я выполняю установку npm C:\test\testRemoteNodeWindow модуль загружен в ~.node-rednode_modules.
4. Но отображается ли он на палитре Node-RED после того, как вы его установили?
Ответ №2:
Я обнаружил проблему, связанную, например, с путем 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.