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());
}
阅读时间
2 分钟阅读
贡献
编辑此页面