Egg.js (二) GET和POST请求

本文介绍如何在Egg.js中处理GET和POST请求,包括通过不同方式获取请求参数,并对比了与Express的差异,突出了Egg.js在请求处理上的简洁性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在看这个之前还是需要先看文档:
https://eggjs.org/zh-cn/basics/router.html
https://eggjs.org/zh-cn/basics/controller.html
这里我所做的也就是一个文档的搬运工再根据自己的需求整理了一下而已。
在之前的Node.js系列博客中都是用的Express,这次使用Egg.js之后明显感觉简洁多了。

GET请求

参数获取方式一:

'use strict';

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

class HomeController extends Controller {
  async query() {
    const { ctx } = this;
    ctx.body = {
      query: ctx.query,
      id:  ctx.query.id,
      data: ctx.query.data
    }
    // http://localhost:7001/query?id=2&data=aa
    // {
    //   "query": {
    //       "id": "2",
    //       "data": "aa"
    //   },
    //   "id": "2",
    //   "data": "aa"
    // }
  }
}

module.exports = HomeController;
路由:

'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/query', controller.home.query);
};

参数获取方式二:

async params() {
    const { ctx } = this;
    ctx.body = {
      params: ctx.params,
      id:  ctx.params.id,
      data: ctx.params.data
    }
    // http://localhost:7001/params/2/aa
    // {
    //   "params": {
    //       "id": "2",
    //       "data": "aa"
    //   },
    //   "id": "2",
    //   "data": "aa"
    // }
  };
router.get('/params/:id/:data', controller.home.params);

POST请求

async post() {
    const { ctx } = this;
    ctx.body = {
      post: ctx.request.body,
      id:  ctx.request.body.id,
      data: ctx.request.body.data
    }
    // http://localhost:7001/post
    // {
    //   "post": {
    //       "id": "2",
    //       "data": "aa"
    //   },
    //   "id": "2",
    //   "data": "aa"
    // }
  };
router.post('/post', controller.home.post);

这里的GET和POST请求其实没什么,主要是要注意下和Express的差异。总体感觉就是使用真的简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值