node red openshift 用户目录
node red openshift user directory
我正在使用 Openshift 创建我的 node-red 应用程序。
我想将我的节点存储在 Openshift 环境变量的用户目录中,该目录是 process.env.OPENSHIFT_DATA_DIR
但是当我构建和 运行 我的应用程序时,我从 Openshift 部署日志中看到这个错误:
Environment:
DEV_MODE=false
NODE_ENV=production
DEBUG_PORT=5858
Launching via npm...
npm info it worked if it ends with ok
npm info using npm@2.15.1
npm info using node@v4.6.2
npm info prestart node-red-app@
npm info start node-red-app@
> node-red-app@ start /opt/app-root/src
> node app.js
Potentially unhandled rejection [1] Error: Property 'userDir' is read-only
这是我的 app.js:
var http = require('http');
var express = require("express");
var RED = require("node-red");
// Create an Express app
var app = express();
// Add a simple route for static content served from 'public'
app.use("/",express.static("public"));
// Create a server
var server = http.createServer(app);
// Create the settings object - see default settings.js file for other options
var settings = {
nodesDir: process.env.OPENSHIFT_DATA_DIR,
httpAdminRoot:"/",
httpNodeRoot: "/api",
userDir: process.env.OPENSHIFT_DATA_DIR,
uiPort: 8080,
functionGlobalContext: { } // enables global context
};
// Initialise the runtime with a server and settings
RED.init(server,settings);
// Serve the editor UI from /red
app.use(settings.httpAdminRoot,RED.httpAdmin);
// Serve the http nodes UI from /api
app.use(settings.httpNodeRoot,RED.httpNode);
server.listen(8080);
// Start the runtime
RED.start();
我应该在 Openshift 仪表板中单独定义环境变量吗?
谢谢
我通过在部署仪表板中定义这个环境变量解决了这个问题:
OPENSHIFT_DATA_DIR
为 app-root/data
。
我的 node.js 代码没有问题。
我正在使用 Openshift 创建我的 node-red 应用程序。
我想将我的节点存储在 Openshift 环境变量的用户目录中,该目录是 process.env.OPENSHIFT_DATA_DIR
但是当我构建和 运行 我的应用程序时,我从 Openshift 部署日志中看到这个错误:
Environment:
DEV_MODE=false
NODE_ENV=production
DEBUG_PORT=5858
Launching via npm...
npm info it worked if it ends with ok
npm info using npm@2.15.1
npm info using node@v4.6.2
npm info prestart node-red-app@
npm info start node-red-app@
> node-red-app@ start /opt/app-root/src
> node app.js
Potentially unhandled rejection [1] Error: Property 'userDir' is read-only
这是我的 app.js:
var http = require('http');
var express = require("express");
var RED = require("node-red");
// Create an Express app
var app = express();
// Add a simple route for static content served from 'public'
app.use("/",express.static("public"));
// Create a server
var server = http.createServer(app);
// Create the settings object - see default settings.js file for other options
var settings = {
nodesDir: process.env.OPENSHIFT_DATA_DIR,
httpAdminRoot:"/",
httpNodeRoot: "/api",
userDir: process.env.OPENSHIFT_DATA_DIR,
uiPort: 8080,
functionGlobalContext: { } // enables global context
};
// Initialise the runtime with a server and settings
RED.init(server,settings);
// Serve the editor UI from /red
app.use(settings.httpAdminRoot,RED.httpAdmin);
// Serve the http nodes UI from /api
app.use(settings.httpNodeRoot,RED.httpNode);
server.listen(8080);
// Start the runtime
RED.start();
我应该在 Openshift 仪表板中单独定义环境变量吗? 谢谢
我通过在部署仪表板中定义这个环境变量解决了这个问题:
OPENSHIFT_DATA_DIR
为 app-root/data
。
我的 node.js 代码没有问题。