Egg.js中编写RestfulAPI接口

egg.js定义了快速生成CRUD路由配置的方式,即配置资源路由,用router.resources来实现

一、router.resources支持的方法

Method Path Route Name Contorller.Action
GET /user 默认 app.contorllers.user.index
GET /user/new 新增业务 app.contorllers.user.new
GET /user/:id 查询用户 app.contorllers.user.show
GET /user/id/edit 编辑用户 app.contorllers.user.edit
POST /user 新增用户 app.contorllers.user.create
PUT /user/:id 更新用户 app.contorllers.user.update
DELETE /user/:id 删除用户 app.contorllers.user.destory

二、使用

1.配置资源路由,在router.js文件中增加帖子资源路由

//router.resources()函数的第一个参数posts是路由名称,第二个参数/api/posts是请求路径
router.resources('user', '/user', controller.user);

2.在controller目录下创建posts.js文件,完整内容如下

'use strict';

const Controller = require('egg').Controller;

class UserController 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;

三、路由分组

1、app文件夹的根目录下创建 router 文件夹,在router文件夹里新建一个路由模块

2、在router下新建user.js,将user相关的路由迁移过来

3、在router.js文件中,引入user模块(通过require)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。