Express-学习之路 07,api接口 - 控制器

417 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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 文件中,进行引入具体的 控制器,进行对应即可。

image.png

可以看到我们使用了 解构赋值 的形式,我们路由目录下的代码,极大的被简化了,更加的简洁。

注意点

需要注意的是,我们在创建一个新的路由路径时,例如 order,有几个步骤:

  • 需要在 路由 里面创建一份 order 目录,在 控制器 里面创建一份 order 目录

  • 需要在 router/index.js 中进行添加,在 controller/index.js 中进行添加和导出。

  • 路由order 中引入, 控制器 导出的 order

总结

处理了 api 接口项目中, 路由控制器 之间的关系。