обо всем по порядку.Давайте попробуем понять, почему ваш поток не работает, и попробуем исправить его.
В библиотеке Node-RED есть поток, который выполняет именно то, что вы хотите достичь.Если вы еще не пробовали, пожалуйста, сделайте это как можно скорее.Ссылка: https://cookbook.nodered.org/http/serve-a-local-file
Второй момент для рассмотрения: когда мы хотим обслуживать локальный контент, нам нужно настроить статический путь http в файле конфигурации Node-RED с именем: settings.js
Youоткройте этот файл, найдите строку, начинающуюся с httpStatic:
, измените ее в соответствии со своими настройками и оставьте ее без комментария.Вот как выглядит моя установка (не просто скопируйте и вставьте, вам нужно настроить каталог здесь).
// following property can be used to identify a directory of static content
// that should be served at http://localhost:1880/.
//httpStatic: '/home/nol/node-red-static/',
httpStatic: "C://Users/OCM/.node-red/static",
Будьте внимательны при выборе файла для редактирования.По словам экспертов:
"Чаще всего, когда ваши изменения в файле настроек не вступают в силу, это означает, что вы отредактировали неправильный файл. Один поставляется с установленным кодом, которыйзатем скопируйте его в свой каталог пользователя (обычно ~ / .node-red). Rickus "
Наконец, не забудьте скопировать бинарный файл в этот статический каталог.
После проверки всех этихуказывает, что вполне вероятно, что результатом вашего потока будет двоичный файл, и это можно проверить, добавив узел отладки (сконфигурированный для отображения полного объекта msg) сразу после файла в узле.Если вы видите буфер в msg.payload, это означает, что ваш поток обслуживает двоичный файл.
РЕДАКТИРОВАТЬ: Поиск в библиотеке Node-RED Iобратите внимание, что пример потока уже соответствует HTTP-запросам ESP8266httpUpdate.
Ссылка: https://flows.nodered.org/flow/888b4cd95250197eb429b2f40d188185