简体   繁体   English

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

[英]Express.js:how to use different middlewares based on NODE_ENV?

I have two middlewares, router1 for prod and router2 for test and dev.我有两个中间件,用于生产的 router1 和用于测试和开发的 router2。 How to use different middlewares based on NODE_ENV?如何基于 NODE_ENV 使用不同的中间件?

How about the following codes?下面的代码怎么样?

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

Any better solutions?有什么更好的解决方案吗? Thanks谢谢

I would do something like this to have a legible set of available environments (you may need staging and test at one point), and that way you wouldn't have to modify code any time you add a new env to the object.我会做这样的事情来拥有一组清晰的可用环境(您可能需要在某一时刻进行暂存和测试),这样您就不必在向对象添加新环境时修改代码。

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM