Node.js Quickie - checking the current domain name

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.

Archived Comments

Comment 1 by VIKAS posted on 5/2/2018 at 10:45 AM

var host = req.get('host'); and var origin = req.get('origin'); will also work fine without doing this much coding

Comment 2 (In reply to #1) by Raymond Camden posted on 5/2/2018 at 1:07 PM

Cool. Maybe this wasn't around 5 years ago. But more likely - I just didn't know. ;)