node.js - 在 Express 的路由定义中指定子域

标签 node.js express subdomain

一般来说,我是 ExpressJS 和 NodeJS 的新手,所以我需要有关如何实现这种效果的指导:

app.get('/', 'sub1.domain.com', function(req, res) { 
    res.send("this is sub1 response!"); 
});

app.get('/', 'sub2.domain.com', function(req, res) {
    res.send("this is sub2 response!");
}

因此,当我请求 sub1.domain.com 时,第一个处理程序会使用react,而在 sub2.domain.com 上,我会收到第二个处理程序的响应。我已经阅读了一些有关为此目的使用 vhost 的问题,但如果我上面描述的内容有效而不是像在 vhost 中那样创建多个服务器实例,我会更高兴。

最佳答案

一个快速简单的解决方案是:

app.get('/', function(req, res) {

  var hostname = req.headers.host.split(":")[0];

  if(hostname == "sub1.domain.com")
    res.send("this is sub1 response!");
  else if(hostname == "sub2.domain.com")
    res.send("this is sub2 response!");

});

引用:

http://code4node.com/snippet/http-proxy-with-custom-routing

关于node.js - 在 Express 的路由定义中指定子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18598668/

相关文章:

javascript - 在 Express 中 res.render() 和 res.redirect() 的正确用法是什么?

ruby-on-rails - Rails3 : rewrite url_for for subdomain support, 如何扩展 Action 邮件程序以使用此类 url_for

node.js - 服务器未找到任何与请求的 URI Node 匹配的内容

node.js - 如何在 prod 服务器上部署具有服务器端渲染的 Angular 4 应用程序

mongodb - Mongoose增量值几次后错误

ruby-on-rails - 如何合并路由声明(子域或 token )?

Joomla:1 个域/1 个 joomla 安装下有多个 joomola 站点?

javascript - Node.js、Vue.js 和 Passport.js。 .isAuthenticated() 总是返回 false?可能是 Axios header ?

javascript - 如何使用 v8::Arguments 应用回调?

angularjs - 使用 Node Express 4 MongoDB 上传和检索图像