json接口的開發是日常最多的開發需求。分三步走,router層定義路由。將路由映射爲controller,controller控制器層調用service業務邏輯層,來完成業務邏輯。node
module.exports = (app) => { const Router = app.router Router.get("/api/users", app.controller.user.getUsers) }
// 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
// app/service/user_service.js const {Service} = requrie('egg') class UserService extends Service { async queryUser(pageNum, pageSize) { // 具體的業務邏輯,分頁參數處理。數據庫查詢等。返回User列表 } } module.exports = UserService
上面三步能夠完成一個基本的http+json接口的開發。下面是須要注意的幾點數據庫
如/api/users?pageNum=1&pageSize=10
中的pageNum
和pageSize
json
經過ctx.query
能夠獲取查詢字符串對象參數,上面的例子中能夠拿到對象segmentfault
const { pageNum, pageSize } = ctx.query
經過ctx.request.body
獲取請求對象api
const {userName} = ctx.request.body