在快速应用上本地使用子域

时间:2014-10-16 16:21:52

标签: node.js express subdomain

我在Express上运行节点应用程序。我想设置两种不同的帐户类型(一种针对买家,一种针对卖家),并通过不同的子域(即buyer.example.com和sellers.example.com)进行访问。我不确定如何在本地设置它。我知道我可以在我的计算机上编辑主机文件,以*.localhost解析为127.0.0.1,但这并不能解决我的问题。在这种情况下,buyers.localhost/loginsellers.localhost/login将路由到同一个地方。这是一个常见问题,如果是这样,处理此问题的标准方法是什么?我有哪些选择来分离处理两种帐户类型的逻辑?

1 个答案:

答案 0 :(得分:2)

首先添加:

app.get('*', function(req, res, next){
    if (req.headers.host == 'buyers.localhost:5000') { //Port is important if the url has it
        req.url = '/buyers' + req.url;
    }
    else if(req.headers.host == 'sellers.localhost:5000') {
        req.url = '/sellers' + req.url;
    }  
    next();
});

然后:

app.get('/login', function(){
  //Default case, no subdomain
})

app.get('/buyers/login', function(){
   //Buyers subdomain
})

app.get('/sellers/login', function(){
   //Sellers subdomain
})

在此了解到这一点:https://groups.google.com/forum/#!topic/express-js/sEu66n8Oju0