原文
Node.js开发者经常检测环境变量
NODE_ENV
,但你是否知道设置这个值同时也具有着某些别的意义?阅读本文你将发现这些。
NODE_ENV
是一个在Express框架中极其常用的环境变量。用其确定应用的运行环境(诸如开发,staging,生产,测试...)。
通常,应用将会运行在开发环境。我们可以通过改变process.env.NODE_ENV
来改变环境。让我们来看看框架/库在不同环境下的表现。
开发环境
显示更多日志
不缓存视图
生成较冗余的错误信息
js,css这类前端资源,不压缩不缓存
生产环境
以下是与框架无关的一些特点:
中间件及其他依赖会被切换到更高效的代码路径
只安装
dependencies
中的包,dependencies
与peerDependencies
的中包会被忽略
express.js
缓存视图框架
生成更简短的错误信息
缓存资源文件
sailsjs
可以使用CSRF
压缩服务端响应(详见https://www.npmjs.com/package...)
模块迁移的设置被强制定位'safe'。这可以保证在部署时不会破坏生产数据。
从
res.serverError()
追踪错误信息与错误棧会被存在日志中而不是通过服务端响应返回。
mongoose
全局禁用autoIndex。这能显著提高性能(详见http://docs.mongodb.org/manua...)。
还有许多这里就不一一列出。如你所见,将NODE_ENV设为production能达到更好的性能。所以这个变量在全球Node开发者心中有如此重要的地位。你应该牢记“总是将NODE_ENV设为production”。