Код MODULE_NOT_FOUND был возвращен при установке узла red node с использованием HTTP API

#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.