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

Материал из Онлайн справочника
Версия от 14:10, 9 сентября 2023; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


Встраивание[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

См.также

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