前端小白不迷路-介绍下如何将路由抽离为单独的模块,实现模块化路由

267 阅读1分钟

这是我参与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,今天的关于模块化路由就介绍到这里,如果小伙伴们有什么不懂的或有疑问的欢迎留言,也欢迎大家指正,谢谢!