在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。