这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战
前言:
各位掘友们晚上好,前端小白不迷路,今天一起来学习了解下如何将路由抽离为单独的模块,实现模块化路由。
为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到 app 上,而是推荐将路由抽离为单独的模块。
将路由抽离为单独模块的步骤如下:
1. 创建路由模块对应的 .js 文件
1-1. 创建router/login.js 存放 登录、注册、验证码三个路由
1-2. 创建router/heroes.js 存放 和项目相关的所有路由
2. 调用 express.Router() 函数创建路由对象
const express = require('express');
const router = express.Router();
3. 向路由对象上挂载具体的路由
// 把app换成router,比如
router.get('/xxx/xxx', (req, res) => {});
router.post('/xxx/xxx', (req, res) => {});
4. 使用 module.exports 向外共享路由对象
module.exports = router;
5.使用 app.use() 函数注册路由模块 -- app.js
// app.js 中,将路由导入,注册路由
const login = require('./router/logon.js');
app.use(login)
// app.use(require('./router/heroes.js'));
app.use( require(path.join(__dirname, 'router', 'heores.js')) );
为路由模块添加前缀
我们可以省略路由模块中的
/api前缀,而是在注册路由的时候,统一设置。
app.use('/api', router);
具体app.js中:
app.use('/api', require(path.join(__dirname, 'router', 'login.js')) );
app.use('/my', require(path.join(__dirname, 'router', 'heroes.js')) );
注意:路由文件中,把前缀 /api 和 /my 去掉
使用路由模块的好处
分模块管理路径,提高了代码的可读性,可维护性更强,减少路由的匹配次数,权限管理更方便
总结:
好啦,我是前端小白LONCON,今天的关于模块化路由就介绍到这里,如果小伙伴们有什么不懂的或有疑问的欢迎留言,也欢迎大家指正,谢谢!