Taken from post:
Nested Routes with Express: Keeping your routes separate while creating a nested routing structure.
--http://katieleonard.ca/blog/2016/nested-routes-with-expressjs/
Taken from post:
Nested Routes with Express: Keeping your routes separate while creating a nested routing structure.
--http://katieleonard.ca/blog/2016/nested-routes-with-expressjs/
'use strict' | |
const express = require('express') | |
const subpage = require('./subpage') | |
module.exports = () => { | |
let Router = express.Router({mergeParams: true}) | |
// Fetch the child page and its content. | |
Router | |
.route('/') | |
.get((req, res, next) => { | |
let content = '<pre>' | |
content += 'Level One : ' + req.params.page + '<br>' | |
content += 'Level Two : ' + req.params.child + '<br>' | |
content += '---------------------------------<br>' | |
content += 'Breadcrumb : ' + req.baseUrl | |
content += '</pre>' | |
res.send(content) | |
}) | |
// You may insert static routes here, you know routes | |
// that have processes other than fetching content | |
// from a database. | |
// .. | |
// Routes that requires to fetch a page | |
// content from a database | |
Router.use('/:subpage', subpage()) | |
return Router | |
} |
'use strict' | |
const express = require('express') | |
const pages = require('./pages') | |
module.exports = () => { | |
let Router = express.Router() | |
// Get and Render home page. | |
Router.get('/', (req, res, next) => { | |
res.send('Home') | |
}) | |
// You may insert static routes here, you know routes | |
// that have processes other than fetching content | |
// from a database. | |
// ... | |
// Routes that requires to fetch a page | |
// content from a database | |
Router.use('/:page', pages()) | |
return Router | |
} |
'use strict' | |
const express = require('express') | |
const child = require('./child') | |
module.exports = () => { | |
let Router = express.Router({mergeParams: true}) | |
// Fetch the page and its content. | |
Router.route('/') | |
.get((req, res, next) => { | |
let content = '<pre>' | |
content += 'Level One : ' + req.params.page + '<br>' | |
content += '---------------------------------<br>' | |
content += 'Breadcrumb : ' + req.baseUrl | |
content += '</pre>' | |
res.send(content) | |
}) | |
// You may insert static routes here, you know routes | |
// that have processes other than fetching content | |
// from a database. | |
// ... | |
// Routes that requires to fetch a page | |
// content from a database | |
Router.use('/:child', child()) | |
return Router | |
} |
'use strict' | |
const express = require('express') | |
module.exports = () => { | |
let Router = express.Router({mergeParams: true}) | |
// You may insert static routes here, you know routes | |
// that have processes other than fetching content | |
// from a database. | |
// .. | |
Router | |
.route('/:path') | |
.get((req, res, next) => { | |
let content = '<pre>' | |
content += 'Level One : ' + req.params.page + '<br>' | |
content += 'Level Two : ' + req.params.child + '<br>' | |
content += 'Level Three : ' + req.params.subpage + '<br>' | |
content += '---------------------------------<br>' | |
content += 'Breadcrumb : ' + req.baseUrl + '/' + req.params.path | |
content += '</pre>' | |
res.send(content) | |
}) | |
// Return subpage's parent | |
Router.get('/', function (req, res) { | |
var content = '<pre>' | |
content += 'Level One : ' + req.params.page + '<br>' | |
content += 'Level Two : ' + req.params.child + '<br>' | |
content += 'Level Three : ' + req.params.subpage + '<br>' | |
content += '---------------------------------<br>' | |
content += 'Breadcrumb : ' + req.baseUrl | |
content += '</pre>' | |
res.send(content) | |
}) | |
return Router | |
} |