The order is first come first serve.
In your case, if user hits /api, he will get response from api, but if you write /:name
route before /api
, /:name
will serve for /api
requests also.
Case1:
/api
will serve requests for/api
.
var routes = require('./routes/index');
var users = require('./routes/users');
var api = require('./routes/api');
app.use('/api', api);
app.use("https://stackoverflow.com/users", users);
app.use('/:name', function(req, res, next) {
console.log('from app.js name:', req.params.name);
res.render('index', {
title: req.params.name
});
}, routes);
app.use("https://stackoverflow.com/", function(req, res, next) {
res.render('index', {
title: 'MainPage'
});
});
Case2:
/:name
serves requests for/api
and/users
var routes = require('./routes/index');
var users = require('./routes/users');
var api = require('./routes/api');
app.use('/:name', function(req, res, next) {
console.log('from app.js name:', req.params.name);
res.render('index', {
title: req.params.name
});
}, routes);
app.use('/api', api);
app.use("https://stackoverflow.com/users", users);
app.use("https://stackoverflow.com/", function(req, res, next) {
res.render('index', {
title: 'MainPage'
});
});