在Sails.js的server.jsconfiguration中,在运行时访问NODE_ENV
当尝试在Sails.js的config/server.js
文件中进行configuration更改时,我发现自己无法访问NODE_ENVvariables。 我想configurationexpress
属性的serverOptions
标志并绑定ssl证书 – 但仅限于生产。
假设我使用node app.js --prod
启动了服务器
这不起作用:
module.exports = { ... }; console.log(process.env.NODE_ENV); // undefined
但是这确实有效:
module.exports = { ... }; setTimeout(function () { console.log(process.env.NODE_ENV); // production }, 1000);
基本上我想要做的是:
module.exports = (function () { var env = process.env.NODE_ENV, ret = { express: {} }; if (env == 'production') { ret.express.serverOptions = { key: ..., cert: ... }; } return ret; }());
我见过类似的答案像https://stackoverflow.com/a/21152780/986408,但我不明白他们应该如何工作,当我的不。
而是像这样运行你的应用程序:
NODE_ENV=production node app.js
要么
sails lift --prod
在应用程序的根目录下。 你试图使用的命令行开关是为了传递给sails可执行文件,而不是直接传递给你的应用程序的JavaScript。