Express.js:如何使用基于NODE_ENV的不同中间件?

时间:2016-10-03 18:57:41

标签: javascript node.js express

我有两个中间件,router1用于prod,router2用于test和dev。 如何使用基于NODE_ENV的不同中间件?

以下代码怎么样?

if( process.env.NODE_ENV === 'prod' ) {
    app.use('/', router1);
} else {
    app.use('/', router2);
}

有更好的解决方案吗? 感谢

1 个答案:

答案 0 :(得分:1)

我会做这样的事情来拥有一套清晰可用的环境(你可能需要在一个点上进行升级和测试),这样你就不必在每次向对象添加新的env时修改代码

var routers = {
  prod: /* declare prod router */,
  dev: /* declare dev router */,
};

app.use('/', routers[process.env.NODE_ENV] || routers.dev);