express中的Router作用就是为了方便我们更好的根据路由去分模块。避免将所有路由都写在入口文件中。
一、简单的使用Router
const express = require('express'); let app = express(); app.listen(8888); //创建路由实例,我们可以在该实例上自由的添加路由 let usersRouter = express.Router(); let orderRouter = express.Router(); //添加两个路由到应用上 app.use('/users', usersRouter); app.use('/order', orderRouter); //注意这时候再加路由,就可以不带前面的/users路径了 usersRouter.get('/', function (req, res) { res.send('用户首页'); }); usersRouter.get('/:id', function (req, res) { res.send(`${req.params.id} 用户信息`); }); //注意这时候再加路由,就可以不带前面的/order路径了 orderRouter.get('/', function (req, res) { res.send('订单首页'); }); orderRouter.get('/:id', function (req, res) { res.send(`${req.params.id} 订单信息`); });
二、划分文件使用Router
创建一个routes目录,专门用于放置路由文件,通过module.exports导出供外部使用。
const express = require('express'); let app = express(); app.listen(8888); //添加两个路由到应用上 app.use('/users', require('./routes/users')); app.use('/order', require('./routes/order')); //404判断 app.use(function (req, res) { res.send('404 not found'); });
users.js的代码:
const express = require('express'); let router = express.Router(); router.get('/', function (req, res) { res.send('用户首页'); }); router.get('/:id', function (req, res) { res.send(`${req.params.id} 用户信息`); }); //导出该路由 module.exports = router;
order.js的代码:
const express = require('express'); let router = express.Router(); router.get('/', function (req, res) { res.send('订单首页'); }); router.get('/:id', function (req, res) { res.send(`${req.params.id} 订单信息`); }); //导出该路由 module.exports = router;
Router是可以嵌套的,如果你想划分的更细,一个子路由还以引用子子路由,不断分下去。