Closed DigitalKrony closed 5 years ago
Per your example code.
const subdomain = require('express-subdomain'); ////////////////////////////// // expected responses // ////////////////////////////// var responses = { main: { '/': 'Simple example homepage!' }, api: { '/': 'Welcome to our simple API!', '/users': [{ name: "Brian" }] } }; ////////////////////////////// // routes // ////////////////////////////// var router = express.Router(); //api specific routes router.get('/', function(req, res) { res.send(responses.api['/']); }); router.get('/users', function(req, res) { res.json(responses.api['/users']); }); var app = express(); app.use(subdomain('api', router)); app.get('/', function (req, res) { res.send(responses.main['/']); }); app.listen(3000);
http://localhost:3000/
http://api.localhost:3000/
http://api.localhost:3000/users
Cannot GET /users
Using Express ^4.16.4 and Express-Subdomain ^1.0.5 hosts file has been updated to include the api sub-domain.
^4.16.4
^1.0.5
hosts
Your url doesn’t have a TLD.
You need to add something like this in your host file: myapp.dev, then your api.myapp.dev will work.
Per your example code.
http://localhost:3000/
: expected responsehttp://api.localhost:3000/
: unexpected response, same as host abovehttp://api.localhost:3000/users
: error (Cannot GET /users
)Using Express
^4.16.4
and Express-Subdomain^1.0.5
hosts
file has been updated to include the api sub-domain.