在server.js sails.js中访问运行时访问node_env



我发现自己在试图在sails.js的 config/server.js文件中进行配置更改时无法访问node_env变量。我想配置express属性的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

在应用程序根目录中。您要使用的命令行开关意味着将帆传递给可执行文件,而不是直接转移到您的应用程序JavaScript。

最新更新