18.Egg.js教程-Egg.js的Extend-response、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

发表回复

IT互联网行业相关广告投放 更专业 更精准

立即查看 联系我们