持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情
Express-学习之路 06,api接口 - 路由设计
引言
本系列会以我的一个理解,来介绍并开始学习 Express。
中间会插入自己所联系到的 乱七八糟 的 知识点。
路由设计
路由设计的目的,就是让我们所有的路由信息 进行统一处理。不至于全部在 app.js 中,导致代码结构太乱。
将所有的放到 router 文件夹中,在 app.js 中,只引入即可。
router 的目录结构为
- router/ 路由
-- index.js app.js 主要引入该文件
-- user/
-- index.js
在 router/user/index.js 中,主要是 用户 相关的请求信息,进行统一处理。
const express = require('express')
const router = express.Router()
/* 测试user */
router.get('/', function (req, res, next) {
try {
res.send('user')
} catch (err) {
next(err)
}
})
/* 用户登录 */
router.get('/login', function (req, res, next) {
try {
res.send('user - login')
} catch (err) {
next(err)
}
})
module.exports = router
可以看到在这个文件中,我放置了两个api接口,路由为 '/' 和 '/login'。
可能会有疑问,为什么路由中不添加 user,例如 '/user', '/user/login'。
-
是因为它们有统一的前缀,user
-
既然是公共前缀,那么我们可以在 router/index.js 中引入的时候,进行添加。
在 router/index.js 中存放所有的路由,暴露出 router 提供给 app.js 中
const express = require('express')
/* 引用所有的路由 */
const user = require('./user/index')
// ...
const router = express.Router()
// 注意这里的引入方式,有一个公共的前缀
router.use('/user', user)
module.exports = router
这样的话公共的前缀名,我们就提取出来了。
app.js 文件内容如下
到这里,我们的路由设计即可完成。
后续有其他的路由,直接在 router/index.js 进行引入即可。
下面我们访问下,查看是否可以成功显示。
总结
处理了 Express 中的路由信息,使项目中的代码结构更加清晰。