18.Egg.js教程-Egg.js的Extend-response、helper

目录
文章目录隐藏
  1. 编写 Respose 扩展
  2. 编写使用方法和路由
  3. 编写 helper 扩展
  4. 使用 Helper 扩展

本文是 Extend(扩展)的最后一节,主要讲一下 response 对象和 helper 对象的扩展。

编写 Respose 扩展

/app/extend文件夹下,新建立一个response.js文件。我们的需求是和上节课向对应的,作一个设置 token 的扩展。打开response.js文件,编写下面的代码。

module.exports={
  set token(token){
    this.set('token',token)
  }
};

需要设置的方法以set关键字开头,然后用this.set( )就可以设置返回的token了。

编写使用方法和路由

/app/controll/mybj.js文件下,新建一个方法。然后用response.token来设置 token 的值。

async newResponse(){
  const {ctx} = this;
  ctx.response.token='mybj123.com'
  ctx.body = 'newRespose'
}

然后设置路由 router.js :

router.get('/newResponse',controller.mybj.newResponse);

在终端里开启服务npm run dev,然后输入http://127.0.0.1/newResponse。然后按F12打开浏览器的调试模式,然后进入Network标签,再次刷新浏览器,再选择All,点击newResponse。就可以看到token

编写 helper 扩展

我们紧接着再来学一下helper对象的扩展。我们作一个把字符串进行base64加密的方法。在/app/extend/文件夹下,新建一个helper.js文件。

module.exports = {
  base64Encode(str = ''){
    return new Buffer(str).toString('base64');
  } 
}

虽然Buffer()方法显示已经弃用,但是你还是可以使用的。

使用 Helper 扩展

我们省事一点,直接在/app/controller/mybj.js文件中的newResponse方法里,直接使用。

async newResponse(){
  const {ctx} = this;
  ctx.response.token='mybj123.com'
  const testBase64 = ctx.helper.base64Encode('mybj123.com')
  ctx.body = testBase64
}

然后到浏览器,刷新一下页面。就可以看到输出的结果编程了 base64 加密的文字了。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 18.Egg.js教程-Egg.js的Extend-response、helper

发表回复