Node.js,开发和生产环境的区别
生产环境和开发环境可以有不同的配置。
Node.js 默认情况下认为它始终在开发环境中运行。您可以通过设置 `NODE_ENV=production` 环境变量来告诉 Node.js 您正在生产环境中运行。
这通常通过执行以下命令完成:
export NODE_ENV=production
在 shell 中,但最好将其放在您的 shell 配置文件(例如,使用 Bash shell 的 `.bash_profile`)中,因为否则在系统重启后设置将不会保留。
您也可以通过在您的应用程序初始化命令前添加环境变量来应用它
NODE_ENV=production node app.js
此环境变量是一种约定,在外部库中也广泛使用。
将环境设置为 `production` 通常确保
- 日志记录保持在最低限度,基本级别
- 更多缓存级别发生以优化性能
例如,Pug(由 Express 使用的模板库)在 `NODE_ENV` 未设置为 `production` 时以调试模式编译。在开发模式下,Express 视图在每次请求中都会被编译,而在生产模式下,它们会被缓存。还有很多其他例子。
您可以使用条件语句在不同的环境中执行代码
if (process.env.NODE_ENV === 'development') {
// ...
}
if (process.env.NODE_ENV === 'production') {
// ...
}
if (['production', 'staging'].includes(process.env.NODE_ENV)) {
// ...
}
例如,在 Express 应用程序中,您可以使用它为每个环境设置不同的错误处理程序
if (process.env.NODE_ENV === 'development') {
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
}
if (process.env.NODE_ENV === 'production') {
app.use(express.errorHandler());
}