moriesta
moriesta

Reputation: 1200

Specifying a subdomain in the route definition in Express

I'm new to ExpressJS and NodeJS in general, so I need directions on how to achieve this effect:

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!");
}

So that when I request sub1.domain.com the first handler reacts and on sub2.domain.com I get response from second handler. I've read some questions on SO about using vhost for this purpose, but I'd be more happy if what I described above worked rather than creating multiple server instances like in vhost.

Upvotes: 5

Views: 8824

Answers (2)

Sushant Gupta
Sushant Gupta

Reputation: 9458

Or you can simply use npm package subdomain, it take cares of your subdomain routes. Also similar to that you can check out Wilson's project on subdomain-handler.

Upvotes: 8

Jazor
Jazor

Reputation: 282

A quick and simple solution is:

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!");

});

Reference:

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

Upvotes: 10

Related Questions