Express支持多工作环境,比如生产环境 和开发环境 等。开发者可以使用configure() 方法根据当前环境的需要进行设置,当configure() 没有传入环境名称时,它会在各环境之前被调用(一回注:相当于被各个明确环境所共享)。
下面的示例我们只抛出异常(dumpException ),并且在开发模式 对异常堆栈的输出做出响应,但是不论对开发或者生产环境我们都使用了methodOverride 和bodyParser 。
// 定义共享环境 app.configure(function(){ app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(app.router); }); // 定义开发环境 app.configure('development', function(){ app.use(express.static(__dirname + '/public')); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); // 定义生产环境 app.configure('production', function(){ var oneYear = 31557600000; app.use(express.static(__dirname + '/public', { maxAge: oneYear })); app.use(express.errorHandler()); });
要修改环境,可以通过设置NODE_ENV 环境变量来实现,例如:
$ NODE_ENV=production node app.js
这很重要 ,因为许多的缓存机制只有在生产环境才会启用 。