本文继续学习 Egg.js 中 Request 对象的扩展,Request 中的扩展一般是扩展的属性。比如扩展 Request 中的一个属性,通过属性直接得到请求头中的 token 属性。
开发前的准备工作
我们新写一个方法,用来获取请求头中的token
属性。所以我们在/app/controller/mybj.js
中添加一个方法。
async newRequest(){ const { ctx } = this; const token = ctx.request.token ctx.body = { status:200, body:token } }
然后再到router.js
中设置路由。
router.post("/newRequest", controller.mybj.newRequest);
request 对象扩展 token 属性
Egg.js 对 Request 的扩展也需要在/app/extend
文件夹下,新建一个request.js
文件,然后在这个文件里写扩展属性。
module.exports = { get token() { console.log("token", this.get("token")); return this.get("token"); }, };
使用 REST Client 进行测试
写完上面的代码之后,就可以使用REST Client
插件进行测试了。编写测试代码如下。
POST http://127.0.0.1:7001/newRequest Content-Type: application/json token: 'mybj' { "name":"小红", "age":18 }
在点击send Request
按钮,在 VSCdoe 控制台和请求后返回的数据中,就可以看到token
了。这样一个简单的 Request 扩展就完成了。