前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Egg 中的内置扩展

Egg 中的内置扩展

作者头像
越陌度阡
发布2020-11-26 12:49:39
8380
发布2020-11-26 12:49:39
举报

Egg 框架提供了多种扩展点扩展自身的功能,在开发中,我们既可以使用已有的扩展 API 来方便开发,也可以对扩展点进行自定义扩展,进一步加强框架的功能,Egg 中的扩展点有以下5个:

1. Application

扩展文件为 application.js,存放于extend文件夹下。

代码语言:javascript
复制
// 外部可以通过 this.app.getUrl() 调用方法
module.exports = {
    // 扩展一个方法获取config中配置的全局url
    getUrl(param) {
        // this 就是 app 对象,可以调用 app 上的其他方法,或访问属性
        return this.config.url;
    }
};

2. Context

扩展文件为context.js,存放于extend文件夹下。

代码语言:javascript
复制
// 外部可以通过this.app.getHost()调用方法
module.exports = {
    // 扩展一个获取请求地址的方法
    getHost(){
        // this 就是 ctx 对象,可以调用 ctx 上的其他方法,或访问属性     
        return this.request.host;
    }
}

3. Request

扩展文件为request.js,存放于extend文件夹下。

代码语言:javascript
复制
// 外部可以通过 this.ctx.request.getHeaderHost()调用方法
module.exports = {
    // 扩展一个方法获取请求头的主机信息
    getHeaderHost(param) {
        return this.header.host;
    },
};

4. Response

扩展文件为response.js,存放于extend文件夹下。

代码语言:javascript
复制
// 外部可以通过 this.ctx.response.getResponseBody() 调用方法
module.exports={
    // 扩展一个获取响应主体的方法
    getResponseBody(param) {
        return this.body
    }
}

5. Helper

扩展文件为helper.js,存放于extend文件夹下。

代码语言:javascript
复制
// 安装第三方模块
// npm i silly-datetime --save
var sd = require('silly-datetime');

// 在模板文件中的调用方式
// <span><%=helper.formatTime(list[i].dateline)%></span> 
module.exports = {
    // 扩展格式化时间的方法
    formatTime(param) {
        return sd.format(new Date(param * 1000), 'YYYY-MM-DD HH:mm');
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档