了解如何为生产和开发环境设置不同的配置
你可以为生产环境和开发环境设置不同的配置。
Node假设它总是在开发环境中运行。 你可以通过设置NODE_ENV=production 环境变量来提示Node.js你正在生产环境中运行。
这通常是通过在shell中执行以下命令来完成的
export NODE_ENV=production
来完成,但最好把它放在你的shell配置文件中(比如Bash shell的.bash_profile ),因为否则在系统重启的情况下,这个设置不会持续存在。
你也可以通过在你的应用程序初始化命令前加上这个环境变量来应用它。
NODE_ENV=production node app.js
这个环境变量是一个惯例,在外部库中也被广泛使用。
将环境设置为production ,通常可以确保
- 将日志记录保持在最低的、必要的水平上
- 发生更多的缓存级别,以优化性能
例如,Pug,Express使用的模板库,如果NODE_ENV 不设置为production ,就会在调试模式下进行编译。 Express视图在开发模式下的每个请求中都会被编译,而在生产模式下,它们会被缓存起来。还有很多例子。
Express提供了特定于环境的配置钩子,这些钩子会根据NODE_ENV变量值自动调用。
app.configure('development', () => {
//...
})
app.configure('production', () => {
//...
})
app.configure('production', 'staging', () => {
//...
})
例如,你可以用它来为不同的模式设置不同的错误处理程序。
app.configure('development', () => {
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
})
app.configure('production', () => {
app.use(express.errorHandler())
})