既存のより大きなアプリケーションにNode-REDを組込むことが可能です。 典型的なシナリオとしては、同一のアプリケーションでwebダッシュボードにデータを表示するフローの作成をおこなうために Node-REDを利用することが考えられます。
自分のアプリケーションのpackage.json
の依存モジュールにnode-red
を追加し、
利用している個々のノードの依存関係も追加します。
以下の例はNode-REDを Expressアプリケーションへ組込むミニマムな構成です。
var http = require('http');
var express = require("express");
var RED = require("node-red");
// Expressアプリケーションの生成
var app = express();
// 静的コンテンツのルートを追加
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);
// エディタUIのルートを '/red' に指定
app.use(settings.httpAdminRoot,RED.httpAdmin);
// HTTP node UIのルートを '/api' に指定
app.use(settings.httpNodeRoot,RED.httpNode);
server.listen(8000);
// ランタイム起動
RED.start();
この方法を利用するとき、Node-REDに含まれているsettings.js
ファイルは利用されません。
代わりに、上記のように設定をRED.init
関数に渡します。
更に以下の設定は既存アプリケーションで決められるべきなので 無効化されます。
uiHost
uiPort
httpAdminAuth
httpNodeAuth
httpStatic
httpStaticAuth
https
Node-RED: Low-code programming for event-driven applications.
Copyright OpenJS Foundation and Node-RED contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
The OpenJS Foundation | Terms of Use | Privacy Policy | OpenJS Foundation Bylaws | Trademark Policy | Trademark List | Cookie Policy