美文网首页
Egg.js中编写RestfulAPI接口

Egg.js中编写RestfulAPI接口

作者: 流浪的三鮮餡 | 来源:发表于2023-09-08 18:46 被阅读0次

    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)

    相关文章

      网友评论

          本文标题:Egg.js中编写RestfulAPI接口

          本文链接:https://www.haomeiwen.com/subject/lxjdvdtx.html