快速创建网站,做网站购买什么,wordpress阿里云推送,dedecms网站地图怎么做Node.js 中的开发和生产没有区别#xff0c;即#xff0c;你无需应用任何特定设置即可使 Node.js 在生产配置中工作。但是#xff0c;npm 注册表中的一些库会识别使用 NODE_ENV 变量并将其默认为 development 设置。始终在设置了 NODE_ENVproduction 的情况下运行 Node.js。… Node.js 中的开发和生产没有区别即你无需应用任何特定设置即可使 Node.js 在生产配置中工作。但是npm 注册表中的一些库会识别使用 NODE_ENV 变量并将其默认为 development 设置。始终在设置了 NODE_ENVproduction 的情况下运行 Node.js。 一、Express 中的 NODE_ENV 在广受欢迎的 express 框架中将 NODE_ENV 设置为 production 通常可确保 日志记录保持在最低限度基本级别更多缓存级别用于优化性能 这通常是通过执行命令来完成的 export NODE_ENVproduction在 shell 中但最好将其放在 shell 配置文件中例如带有 Bash shell 的 .bash_profile否则在系统重启的情况下设置不会保留。 你也可以通过将其添加到应用初始化命令的前面来应用环境变量 NODE_ENVproduction node app.js例如在 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());
} 例如如果 NODE_ENV 未设置为 production则 Express 使用的模板库 Pug 会在调试模式下编译。在开发模式下Express 视图在每个请求中都会进行编译而在生产中它们会被缓存。还有更多示例。 此环境变量是外部库中广泛使用的约定但不在 Node.js 本身内使用。 二、为什么 NODE_ENV 被视为反模式 环境是一个数字平台或系统工程师可以在其中构建、测试、部署和管理软件产品。通常我们的应用运行的环境有四个阶段或类型 开发测试准备生产 NODE_ENV 的根本问题源于开发者将优化和软件行为与其软件运行的环境相结合。结果是如下代码 if (process.env.NODE_ENV development) {// ...
}if (process.env.NODE_ENV production) {// ...
}if ([production, staging].includes(process.env.NODE_ENV)) {// ...
} 虽然这看起来无害但它使生产和登台环境不同从而使可靠的测试变得不可能。例如当 NODE_ENV 设置为 development 时测试以及产品的功能可能会通过但当将 NODE_ENV 设置为 production 时会失败。因此将 NODE_ENV 设置为 production 以外的任何值都被视为反模式。