I am trying to centralize all of my route file into a index file and place that index route file in my main app file. I am trying to follow this thread
I have added app.js file. And the routes/ folder below:
When i am trying to get any of the url as mentioned below, it's showing the 404 error.
app.js:
const indexRouter = require('./routes/index');
app.use('/', indexRouter);
routes file:
-- index.js
-- author.js
-- book.js
index.js:
const express = require('express');
const router = express.Router();
// Get Home Page of The Web Application
router.get('/', function(req, res) {
res.send('Library Home Page');
});
router.use('/author', require('./author').router);
router.use('/book', require('./book').router);
module.exports = router;
author.js:
const express = require('express');
const router = express.Router();
var AuthorController = require('../controllers/authorController');
router.get('/', AuthorController.authorList);
router.get('/:id', AuthorController.authorDetail);
router.get('/create', AuthorController.authorCreateForm);
module.exports = router;
book.js:
const express = require('express');
const router = express.Router();
var BookController = require('../controllers/bookController');
router.get('/', BookController.bookList);
router.get('/:id', BookController.bookDetail);
router.get('/create', BookController.bookCreateForm);
module.exports = router;
I want to access the url as follows:
Home:
/
Author:
/author/
/author/1
/author/create
Book:
/book/
/book/1
/book/create
module.exports = router
is a default export so require('./author').router
refers to an undefined property on the router, it should be:
router.use('/author', require('./author'));
And in your server entry:
app.use(indexRouter); // No `'/'` as first param
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.