Express中的NODE_ENV是什么?

var app = express(); app.set('views',settings.c.WEB_PATH + '/public/templates'); app.set('view engine','ejs'); app.configure(function(){ app.use(express.favicon()); app.use(express.static(settings.c.WEB_PATH + '/public')); app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.methodOverride()); app.use(express.session({ cookie:{ domain:"."+settings.c.SITE_DOMAIN, maxAge:1440009999}, secret:'hamster', store: r_store, })); app.use(useragent.express()); app.use(flash()); app.use(passport.initialize()); app.use(passport.session()); }); 

这是我的应用程序。 我正在生产中运行它。

但是,有人告诉我关于NODE_ENV 。 我必须将其添加到此代码? 我如何添加?

NODE_ENV是一个由快速 web服务器框架stream行的环境variables 。 运行节点应用程序时,可以检查环境variables的值,并根据值执行不同的操作。 NODE_ENV具体用于(通过约定)来说明特定环境是生产环境还是开发环境。 如果在开发环境中运行,常见的用例是运行其他debugging或日志logging代码。

访问NODE_ENV

您可以使用以下代码自行访问环境variables,以便您可以执行自己的检查和逻辑:

var environment = process.env.NODE_ENV

或者使用快速' app.get('env')注意:默认为"development"

请注意,如果您没有为您的环境明确设置NODE_ENV ,则它将是undefined

设置NODE_ENV

如何真正设置环境variables因操作系统而异,也取决于用户的设置。

如果要将环境variables设置为一次性,可以从命令行执行:

  • linux&macexport NODE_ENV=production
  • windowsset NODE_ENV=production

从长远来看,你应该坚持这样做,以便它不会取消设置,如果你重新启动 – 而不是列出所有可能的方法来做到这一点,我会让你自己search如何做到这一点!

公约已经规定,只有两个值,你应该使用NODE_ENV ,无论是productiondevelopment ,都是小写。 没有什么能阻止你添加更多的值,但这可能不是一个好主意,因为我在许多node_modules中看到了很多这样的代码:

 var development = process.env.NODE_ENV !== 'production'; 

请注意,尝试从节点应用程序本身设置NODE_ENV是一个非常糟糕的主意 – 如果这样做,它将只适用于从其设置的进程 ,所以事情可能不会像你期望的那样工作。 不要这样做 – 你会后悔的。

好,

NODE_ENV代表快递服务器中的环境variables

这是我们如何设置和检测我们在哪个环境…

这是非常普遍的使用productiondevelopment

组:

 export NODE_ENV=production 

得到:

你可以使用app.get('env')