原始的Node.js开发者经常检查环境变量NODE_ENV,但是你知道设置这个值还有一些其他的含义吗?阅读这篇文章,你会发现。NODE_ENV是Express框架中极其常用的环境变量。用它来确定应用程序的运行环境(如开发、暂存、生产、测试??……)。通常,应用程序将在开发环境中运行。我们可以通过更改process.env.NODE_ENV来更改环境。让我们看看框架/库在不同环境中的行为。开发环境显示日志较多,不缓存视图。生成冗余错误消息。js、css等前端资源不做压缩和缓存。生产环境有一些与框架无关的特性:middleware和其他依赖会被切换以更高效代码路径只安装dependencies中的包,dependencies和peerDependencies中的包将被忽略。express.js缓存视图框架生成更短的错误消息。缓存的资源文件sailsjs可以使用CSRF来压缩服务器响应(详见https://www.npmjs.com/package...)模块迁移设置被强制以“安全”为目标。这确保了生产数据在部署时不会被破坏。跟踪来自res.serverError()的错误消息和错误堆栈将存储在日志中,而不是由服务器响应返回。mongoose全局禁用autoIndex。这可以显着提高性能(有关详细信息,请参阅http://docs.mongodb.org/manua…)。这里没有列出更多。如您所见,将NODE_ENV设置为production可以获得更好的性能。所以这个变量在全世界的Node开发者心中有着如此重要的地位。您应该牢记“始终将NODE_ENV设置为生产环境”。
