在尝试在Sails.js的config/server.js
文件中进行配置更改时,我发现自己无法访问NODE_ENV变量。我想配置serverOptions
属性的express
标志并绑定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这样的类似答案,但是当我没有这样的答案时,我无法理解它们应该如何运作。
答案 0 :(得分:7)
改为运行你的应用程序:
NODE_ENV=production node app.js
或
sails lift --prod
在应用程序根目录中。您尝试使用的命令行开关应该传递给sails可执行文件,而不是直接传递给您的应用程序javascript。