可以将 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.js 文件
var settings = {
httpAdminRoot:"/red",
httpNodeRoot: "/api",
userDir:"/home/nol/.nodered/",
functionGlobalContext: { } // 启用全局上下文
};
// 用服务器和设置初始化运行时
RED.init(server,settings);
// 从 /red 提供编辑器 UI
app.use(settings.httpAdminRoot,RED.httpAdmin);
// 从 /api 提供 http 节点 UI
app.use(settings.httpNodeRoot,RED.httpNode);
server.listen(8000);
// 启动运行时
RED.start();
使用这种方法时,不使用 Node-RED 中包含的 settings.js
文件。相反,设置作为参数传递给 RED.init
调用,如上所示。
此外,以下设置会被忽略,因为它们由您自行配置 Express 实例:
uiHost
uiPort
httpAdminAuth
httpNodeAuth
httpStatic
httpStaticAuth
https
版权所有 OpenJS Foundation 和 Node-RED 贡献者。保留所有权利。OpenJS Foundation 拥有并使用注册商标。有关 OpenJS Foundation 的商标列表,请参阅我们的 商标政策 和 商标列表。未在 OpenJS Foundation 商标列表 中列出的商标和徽标是其各自持有者的商标™或注册商标®。使用它们并不意味着与它们有任何关联或认可。
OpenJS Foundation | 使用条款 | 隐私政策 | OpenJS Foundation 章程 | 商标政策 | 商标列表 | Cookie 政策