I'm working on a quick proof of concept (for a killer idea, honest, I swear) that needs to rely on a subdomain name to determine how the application responds. So as an example, I want to see something different for foo.app.com versus goo.app.com, and obviously support www.app.com and app.com. Here is a quick way to handle that. First - my thanks to StackOverflow user cjohn for his answer. If you examine the Request object in your Node app you can introspect the headers object to view the host value.
I did a quick dump (JSON.stringify(req.headers)) to see what this looked like:
Pretty much what I expected. So I wrote a quick little snippet that would focus on returning just the subdomain:
You can see both the function as well as the route that makes use of it. This isn't perfect. If a user hits the site via x.y.app.com then you (probably) want to see x.y as a result, but for my needs I'm fine with just x being returned.