乐趣区

json接口开发

传送门:学习 node.js 服务开发这一篇就够了系列文章

json 接口的开发是平常最多的开发需求。分三步走,router 层定义路由。将路由映射为 controller,controller 控制器层调用 service 业务逻辑层,来完成业务逻辑。

1.Router 层

module.exports = (app) => {
  const Router = app.router
  
  Router.get("/api/users", app.controller.user.getUsers)
}

2.Controller 层

// app/controller/user.js
const {Controller} = require('egg')

class User extends Controller {async getUsers() {const {pageNum, pageSize} = ctx.query
       ctx.body = this.ctx.service.userService.queryUser(pageNum, pageSize)
  }
}

module.exports = User

3.Service 层

// app/service/user_service.js
const {Service} = requrie('egg')

class UserService extends Service {async queryUser(pageNum, pageSize) {// 具体的业务逻辑,分页参数处理。数据库查询等。返回 User 列表}
}

module.exports = UserService

上面三步可以完成一个基本的 http+json 接口的开发。下面是需要注意的几点

4. 获取请求参数

4.1 获取查询字符串参数

/api/users?pageNum=1&pageSize=10 中的 pageNumpageSize

通过 ctx.query 可以获取查询字符串对象参数,上面的例子中可以拿到对象

const {pageNum, pageSize} = ctx.query

4.2 http 请求体 body 的获取

通过 ctx.request.body 获取请求对象

const {userName} = ctx.request.body
退出移动版