路由中间件
使用场景
路由过多时,代码不好管理。以管理员和用户接口为例,定义了管理员角色的接口和普通游客的接口,这些接口如果全写在一个入口文件中(如下只是显示了4个接口,如果是40个接口,就会很难读了),是很不好维护的。
const express = require('express');
const app = express();
// 两种用户的操作,对应不同的接口
app.get('/getfrontdetail', (req, res) => {
res.send('获取游客详情');
});
app.get('/getfrontinfo', (req, res) => {
res.send('获取游客信息');
});
// 两种用户的操作,对应不同的接口
app.get('/getadmincate', (req, res) => {
res.send('管理员获取文章类别信息');
});
app.get('/getadmininfo', (req, res) => {
res.send('获取管理员信息');
});
app.listen(3000, () => {
console.log(3000);
});
使用路由中间件就是把它们拆开到不同的文件中,以便于管理。
基本步骤
-
整理接口名。
对众多的接口名进行整理和分类,以一级目录,二级目录这样的方式进行。例如:
/admin/getcate
/admin/getinfo
/front/getinfo
/front/getdetail
2.通过node.js的模块化,分模块定义路由中间件,并导出。
3.在入口文件中,导入并使用路由中间件。
实现
:
定义两个路由文件:
- front.js
// ./router/front.js
const express = require('express');
const router = express.Router();
router.get('/getinfo', function(req, res) {
res.send('getinfo');
});
router.get('/getdetail', function(req, res) {
res.send('getdetail');
});
module.exports = router;
- admin.js
// ./router/admin.js
const express = require('express');
const router = express.Router();
router.get('/getinfo', function(req, res) {
res.send('获取管理员信息');
});
router.get('/getcate', function(req, res) {
res.send('管理员获文章类别信息');
});
module.exports = router;
在主入口文件中导入并使用路由中间件
const express = require('express');
const app = express();
const frontRouter = require('./router/front');
const adminRouter = require('./router/admin');
app.use('/front', frontRouter);
app.use('/admin', adminRouter);