koa中的控制器

什么是控制器

路由的功能是根据不同的 url, 来分配不同的任务.
控制器是拿到路由分配的任务并执行.
注册在路由中的中间件就是控制器

所以在 koa 中, 控制器也是一个中间件

为什么要用控制器

  1. 用它可以获取 HTTP 请求参数

Query String(可选), 如谷歌的 ?q=keyword
Router Params(放必选参数), 如/user/:id
Body 请求体(), 常常用 json 表示, 如{ name: ‘mike’ }
Header, 如 accept, cookie

  1. 处理业务逻辑,比如获取,计算,存储数据等
  2. 根据不同情况,发送不同 HTTP 响应,比如失败,成功等

发送 status, 如 200/400
发送 Body,这里是返回内容, restfulapi 里返回的常常是 json, 但是传统 web 开发也会返回 html
发送 Header, 如 Allow, Content-Type(告诉客户端返回的格式应该用什么方式解析, restful api 里面常常是 json)

编写控制器的最佳方式或格式

  • 每个资源的控制器放在不同文件里

比如用户相关的控制器, 都放在用户文件里
评论相关的, 放在评论文件里

  • 尽量使用类 + 类方法的形式编写控制器

每个文件里都有很多控制器, 比如用户资源的控制器不止一个. 这些不要写成单独的几个方法
因为中间件虽然本质是方法, 但是不要写成多个方法导出, 最好集成在同一个类里面,比如写成 class, 把控制器都写成类的类方法. 这样使得可读性高, 而且都代表一类, 可以共享类的变量和方法

  • 严谨的错误处理

比如传来的参数都要校验, 不能相信客户端传来的参数, 而且逻辑上的错误也要检查, 并报出错误信息


猜你喜欢

转载自blog.csdn.net/m0_48446542/article/details/109114363