Express - 为不同的子域设置不同的路由

jor*_*dan 5 subdomain routing node.js express

我有一个正在运行的应用程序,我希望为不同的子域设置不同的路由。这是我尝试过的:

app.get('*', function(req, res, next){
  if(req.headers.host == 'sub.example.com') { //if it's a sub-domain
    app.use('/', sub_routes);
  }else{
    app.use('/', routes);
  }
  next();
});
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。我收到 404 错误。当我app.use('/', routes);在该块之外设置时,路由工作,但随后我无法根据子域设置它们。我猜问题是我试图在已经设置的路由中定义路由,但我不确定如何有条件地设置这些路由。我怎样才能做到这一点?

Eva*_*iss 4

我从未使用过这个,但你尝试过https://www.npmjs.org/package/express-subdomain

看起来它完美地涵盖了您的用例。

您还可以只为每个子域使用不同的节点进程,并在 nginx 或 Apache 中执行路由到适用的进程。