热搜:fiddler git ip 代理 ios
历史搜索

18.Egg.js教程

游客2024-12-08 12:03:02
目录文章目录
  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 加密的文字了。

标签:base64