持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情
Express-学习之路 07,api接口 - 控制器
引言
本系列会以我的一个理解,来介绍并开始学习 Express。
中间会插入自己所联系到的 乱七八糟 的 知识点。
控制器
在上一节中,我们处理了路由的设计,把代码的结构进行了优化,但是有一个问题也暴露出来。
如果 api 的接口较多,而且要处理函数方法里面的逻辑也很多,那么这个页面里面的代码就太多了。
就会导致寻找 api 就很麻烦,不能快速定位 api 接口的位置。
这里就要使用 控制器 来处理数据逻辑,主要是 处理我们的路由 对应的 函数,这样的话,我们找到 api 后,直接定位到函数位置即可。
路由 主要进行匹配,控制器 主要进行请求方法处理。
目录结构
控制器 controller 的目录结构为
- controller/ 解析用户输入,响应输出
-- index.js
-- user/
-- index.js
-- home/
-- index.js
controller/index.js 文件中的内容主要用于导出,之后在 router 文件夹中进行引入
const user = require('./user/index')
const home = require('./home/index')
module.exports = {
userController: user,
homeController: home
}
controller/user/index.js 文件中,主要用于编写 处理请求过来的内容,在路由匹配后,即可对应到里面的方法
const user = (req, res, next) => {
try {
res.send('user')
} catch (err) {
next(err)
}
}
const userLogin = (req, res, next) => {
try {
res.send('user - login')
} catch (err) {
next(err)
}
}
module.exports = {
user,
userLogin
}
router/user/index.js 文件中,进行引入具体的 控制器,进行对应即可。
可以看到我们使用了 解构赋值 的形式,我们路由目录下的代码,极大的被简化了,更加的简洁。
注意点
需要注意的是,我们在创建一个新的路由路径时,例如 order,有几个步骤:
-
需要在 路由 里面创建一份 order 目录,在 控制器 里面创建一份 order 目录
-
需要在 router/index.js 中进行添加,在 controller/index.js 中进行添加和导出。
-
在 路由 的 order 中引入, 控制器 导出的 order
总结
处理了 api 接口项目中, 路由 与 控制器 之间的关系。