【问题标题】:Express - set up different routes for different subdomainsExpress - 为不同的子域设置不同的路由
【发布时间】:2014-12-19 09:36:04
【问题描述】:

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

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();
});

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

【问题讨论】:

    标签: node.js express routing subdomain


    【解决方案1】:

    我从来没有用过这个但是你试过https://www.npmjs.org/package/express-subdomain

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

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

    【讨论】:

    • 我试过使用它,但无法让它在本地主机上工作。我将子域添加到我的主机文件中。
    • 那么在这种情况下,是解决您机器上的主机还是模块的问题?
    • 在机器上。如果我使用这个模块,它在我的生产环境中工作得很好。在我的机器上,我的主机文件条目看起来像这样127.0.0.1 localhost subdomain.localhost。但该模块无法将 subdomain 识别为子域。
    • 我能够在本地完成这项工作。这是我问的另一个question,它解释了我是如何做到的。
    猜你喜欢
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2016-12-23
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多