欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

程序员文章站 2022-04-30 18:22:17
...

本文为个人学习整理所得,希望对读者有所帮助。

GET

传递参数

在一般情况下,项目中会有两种get传参方式:1 是以?&分割的、2 是以/分割;

例如客户端向传递约定的idname这两个参数:

  1. localhost:7001/goods/detail?id=2333&name=hefen

  2. localhost:7001/goods/detail/2333/hefen

接收参数

对应的,在服务器接收这两个参数的方式:1 query方式、2 params,以下是代码示例:

  1. app/controllergoods.js中,新建一个函数detail
// GET
  async detail() {
    const { ctx } = this;
    console.log(ctx.query);
    ctx.body = `hello, my id is ${ctx.query.id} and my name is ${ctx.query.name}`;
  }

浏览器中输入链接1 – localhost:7001/goods/detail?id=2333&name=hefen,可以看到界面已经把数据读取出来了:

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

这时候我们再看控制台的打印结果:

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

  1. app/controllergoods.js中,再新建一个函数detailTwo
// GET
  async detailTwo() {
    const { ctx } = this;
    console.log(ctx.params);
    ctx.body = `hello, detailTwo, my id is ${ctx.params.id} and my name is ${ctx.params.name}`;
  }

然后在app/router.js中加入新的路由:

router.get('/goods/detailTwo/:id/:name', controller.goods.detailTwo);

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式
浏览器中输入链接2 – localhost:7001/goods/detailTwo/2333/hefen,可以看到界面已经把数据读取出来了:
Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式
这时候我们再看控制台的打印结果:
Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

POST

因为POST请求不能直接在浏览器模拟,所以接下来我们会借助了接口神器 postman 来测试接口。
当然直接发送请求的话会触发egg.js内置的csrf防御机制,控制台报错如下图:(PS:更多防御机制请看官方文档点击此处)

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

这个时候我们需要在config/config.default.js中配置一下,就可以正常使用了

config.security = {
    csrf: {
      enable: false, //此处关闭csrf防御
    }
}

传递参数

用postman选择POST方式,输入接口localhost:7001/goods/detail/createGood,勾选body,raw,JSON格式,填入json对象后,点击发送,如下图:
Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

接收参数

app/controllergoods.js中,新建一个函数createGood

// POST
  async createGood() {
    const { ctx } = this;
    const { name, id } = ctx.request.body;
    console.log(ctx.request.body);
    ctx.body = {
      id:`back ${id}`,
      name:`back ${name}`,
    }
  }

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

然后在app/router.js中加入新的路由:

router.post('/goods/createGood', controller.goods.createGood);

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式
在postman中点击发送后,我们就可以看到返回了postman得到了返回参数

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

这时候我们再看控制台的打印结果:

Node - Egg.js 框架从入门到放弃系列(3)- 主要的几种传参方式

PUT、DELETE

这两种的调用方式与上面的请求大同小异,需要的童鞋可以看我在github放出的源码。

一起做项目

这节如要熟悉请求方式,所以。。
PS:代码仓库https://github.com/hejian1993/nodeEgg

我们下一节见

三个月前,一个人关注了我,他娶了一个如花似玉的老婆。
一周前,一个人关注了我,他中了888亿。
今年,关注了我的人都娶了如花似玉的老婆结婚那天还中888亿。
我已开过光,话已经放到这了。

相关标签: node.js egg.js