egg.js定義了快速生成CRUD路由配置的方式,比如使用如下方式可以為帖子模塊自動配置一組增刪改查的路由,從而達到簡化繁瑣路由配置的目的。
1.配置資源路由,在router.js文件中增加帖子資源路由
router.resources('posts', '/api/posts', controller.posts);
router.resources()函數的第一個參數posts是路由名稱,第二個參數/api/posts是請求路徑。如圖所示:
2.在controller目錄下創建posts.js文件,完整內容如下
'use strict'; const Controller = require('egg').Controller; class PostsController extends Controller { // 列表頁 async index() { console.log('>>> index') this.ctx.body = { msg: 'ok', data: '列表頁' }; }; // 新增表單頁 async new() { console.log('>>> new') this.ctx.body = { msg: 'ok', data: '新增表單頁' }; }; // 新增邏輯 async create() { console.log('>>> create') this.ctx.body = { msg: 'ok', data: '新增邏輯' }; }; // 詳情頁 async show() { console.log('>>> show') let id = this.ctx.params.id; this.ctx.body = { msg: 'ok', data: '詳情頁,id=' + id }; }; // 編輯表單頁 async edit() { console.log('>>> edit') let id = this.ctx.params.id; this.ctx.body = { msg: 'ok', data: '編輯表單頁,id=' + id }; }; // 更新邏輯 async update() { console.log('>>> update') let id = this.ctx.params.id; this.ctx.body = { msg: 'ok', data: '更新邏輯, id=' + id }; }; // 刪除邏輯 async destroy() { console.log('>>> destroy') let id = this.ctx.params.id; this.ctx.body = { msg: 'ok', data: '刪除邏輯, id=' + id }; }; } module.exports = PostsController;
3.PostMain接口測試結果
1.帖子列表頁 請求地址:http://127.0.0.1:7001/api/posts 請求方式:GET 返回結果: { "msg": "ok", "data": "列表頁" } 2.帖子新增表單頁 請求地址:http://127.0.0.1:7001/api/posts/new 請求方式:GET 返回結果: { "msg": "ok", "data": "新增表單頁" } 3.帖子詳情頁 請求地址:http://127.0.0.1:7001/api/posts/2 請求方式:GET 返回結果: { "msg": "ok", "data": "詳情頁,id=2" } 4.帖子編輯表單頁 請求地址:http://127.0.0.1:7001/api/posts/55/edit 請求方式:GET 返回結果: { "msg": "ok", "data": "編輯表單頁,id=55" } 5.帖子新增邏輯 請求地址:http://127.0.0.1:7001/api/posts 請求方式:POST 返回結果: { "msg": "ok", "data": "新增邏輯" } 6.帖子更新邏輯 請求地址:http://127.0.0.1:7001/api/posts/14 請求方式:PUT 返回結果: { "msg": "ok", "data": "更新邏輯, id=14" } 6.帖子刪除邏輯 請求地址:http://127.0.0.1:7001/api/posts/15 請求方式:DELETE 返回結果: { "msg": "ok", "data": "刪除邏輯, id=15" }