Use route as an alias for another route in Express.js

I am working on a basic blog in Express.js. Say I have a route structure:

/blog/page/:page 

I also need the /blog route, which is essentially an alias for /blog/page/1 . How can I easily handle this in Express?

All routes are defined as follows:

 app.get('/path', function(req, res) { //logic }); 
+6
source share
1 answer

Use res.redirect to tell the browser to redirect to /blog/page/1 :

 app.get('/blog', function(req, res) { res.redirect('/blog/page/1'); }); app.get('/blog/page/:page', function(req, res) { //logic }); 

Use the general route handler and the default on page 1 if the page parameter is not passed:

 function blogPageHandler(req, res) { var page = req.params.page || 1; //logic } // Define separate routes app.get('/blog/page/:page', blogPageHandler); app.get('/', blogPage); // or combined, by passing an array app.get(['/', '/blog/page/:page'], blogPageHandler); // or using optional regex matching (this is not recommended) app.get('/:_(blog/)?:_(page/)?:page([0-9]+)?', blogPageHandler); 
+13
source

All Articles