一个NodeJS服务器中的两个Express"app"?

fad*_*bee 5 middleware node.js express

我希望能够通过不同的Express中间件堆栈传递不同的请求.

我想我需要两个快递app,以及一些分支方式.例如:

var app = express();
var alt_app = express();

app.use(logger('dev'));
app.use(bodyParser.json());

app.use(function(req, res, next) {
  if (some_condition(req)) {
    divert_request_to_alt_app();
  } else {
    next();
  }
}

app.use(middleware_that_must_not_affect_alt_app());
alt_app.use(middleware_that_only_affects_alt_app());
Run Code Online (Sandbox Code Playgroud)

这样的策略有可能吗?

如果是这样,应该divert_request_to_alt_app()是什么?

如果没有,还有什么其他方法?

fad*_*bee 6

我发现 express 应用程序是函数。(req, res, next)只需调用它们即可将请求从一个应用程序传递到另一个应用程序。

在下面的示例中,我有一个根应用程序app和两个分支app0app1.

var app0 = require('./app0');
var app1 = require('./app1');

var app = express();
...
app.use(function(req, res, next) {
  if (some_condition_on(req)) {
    app0(req, res, next);
  } else {
    app1(req, res, next);
  }
});
Run Code Online (Sandbox Code Playgroud)