Handle dynamic/wildcard subdomains in Express.js. Perfect for when you have customized subdomains for different users, and need to handle them within your Node app.
Requests to foo.yourdomain.com
can be handled with using the route /_sub/:subdomain
Paths and query strings and paths remain intact. For example:
foo.yourdomain.com/post/cat?oh=hai
can be handled with using the route /_sub/foo/post/cat?oh=hai
Dependency free!
Require the module in app.js:
var wildcardSubdomains = require('wildcard-subdomains')
Use the module in middleware:
app.use(wildcardSubdomains(opts))
Key | Type | Default | Description |
---|---|---|---|
namespace | String | '_sub' |
Prepended to the path |
ignore | String | '' |
Ignore url if its first subdomain matches ignore |
stripSubdomain | String | '' |
Find and remove subdomain matching stripSubdomain |
Example options:
app.use(wildcardSubdomains({
namespace: 's',
ignore: 'app',
stripSubdomain:'www'
}))
Handle the new route for your subdomain, for example foo.yourdomain.com
would be handled with:
app.get('/s/foo/', function(req, res){
res.send("Meow!")
})
npm run example
Or check the examples
directory in this repo
For testing subdomains locally, use the domain vcap.me:3000
This is a domain that points back to your localhost, allowing you to test subdomains like foobar.vcap.me
Running your app behind a proxy? You'll likely need to set the appropriate trust proxy in express