Node-RED:Руководство пользователя/Встраивание: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Node-RED/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} {{Черновик}} =Встраивание<ref>[h…»)
 
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{Node-RED/Панель перехода}}
{{Node-RED/Панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Встраивание<ref>[https://nodered.org/docs/embedding nodered.org - Embedding into an existing app]</ref>=
=Встраивание<ref>[https://nodered.org/docs/embedding nodered.org - Embedding into an existing app]</ref>=
Строка 14: Строка 11:
Ниже – небольшой пример встраивания [[Node-RED]] в более крупное приложение [[Express]].
Ниже – небольшой пример встраивания [[Node-RED]] в более крупное приложение [[Express]].


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
var http = require('http');
var http = require('http');
var express = require("express");
var express = require("express");
Строка 70: Строка 67:


<references />
<references />
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 14:10, 9 сентября 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Встраивание[1]

Node-RED можно встроить в более крупное приложение. Типичный сценарий такого симбиоза – это когда вы используете Node-RED для генерирования потоков данных, чтобы потом показать их на веб-панели управления, и все это в рамках одного и того же приложения.

Добавьте «node-red» в зависимости модуля в файле «package.json» своего приложения (вместе со всеми другими нодовыми зависимостями).

Ниже – небольшой пример встраивания Node-RED в более крупное приложение Express.

var http = require('http');
var express = require("express");
var RED = require("node-red");

// Создаем приложение Express:
var app = express();

// Добавляем путь для статического контента,
// который будет обслуживаться из папки «public»:
app.use("/",express.static("public"));

// Создаем сервер:
var server = http.createServer(app);

// Создаем объект «settings»;
// другие опции смотрите в исходном файле «settings.js»:
var settings = {
    httpAdminRoot:"/red",
    httpNodeRoot: "/api",
    userDir:"/home/nol/.nodered/",
    functionGlobalContext: { }    // активирует глобальный контекст
};

// Инициализируем среду выполнения
// при помощи заданных выше сервера и настроек:
RED.init(server,settings);

// Обслуживаем UI редактора из «/red»:
app.use(settings.httpAdminRoot,RED.httpAdmin);

// Обслуживаем UI http-нод из «/api»:
app.use(settings.httpNodeRoot,RED.httpNode);

server.listen(8000);

// Запускаем среду выполнения:
RED.start();

При использовании этого подхода не используется файл «settings.js» для Node-RED. Вместо этого используются настройки, переданные методу RED.init(), как показано в примере выше.

Впрочем, свойства ниже в настройках не заданы, что позволяет вам настроить экземпляр Express как вам хочется.

  • uiHost
  • uiPort
  • httpAdminAuth
  • httpNodeAuth
  • httpStatic
  • httpStaticAuth
  • https

См.также

Внешние ссылки