文章目录

  • 一、重点
  • 二、application的扩展和使用
    • 1.扩展
    • 2.使用
  • 二、context的扩展和使用
    • 1.扩展
    • 2.使用
  • 三、helper的扩展和使用
    • 1.扩展
    • 2.使用
      • 1.controller、service中使用
      • 2.html中使用
  • 四、request的扩展和使用
    • 1.扩展
    • 2.使用

一、重点

官网: https://eggjs.org/zh-cn/basics/extend.html

可扩展

Application
Context
Request
Response
Helper

需注意要在app下新建目录extend文件夹,根据官网创建对应的文件

application.js 、context.js 、 request.js 、response.js、 helper.js

二、application的扩展和使用

1.扩展

@file(application.js)/*外部可以通过 this.app.foo() 来调用
*/
module.exports = {foo(params) {console.log('extend-app: 我是扩展方法');}
}

2.使用

Controller,Middleware,Helper,Service 中都可以通过 this.app来调用。

class HomeController extends Controller {async index() {// extend-applicationthis.app.foo();  await this.ctx.render('home');}
}

二、context的扩展和使用

1.扩展

@file(context.js)module.exports = {// this 就是 ctx 对象,在其中可以调用 ctx 上的其他方法,或访问属性getHost() {let host = this.request.header.host;console.log('extend-ctx: ', host);return host;}
}

2.使用

1. middleware 中 this 就是 ctx,例如 this.cookies.get('foo')。
2. controller 有两种写法,类的写法通过 this.ctx,方法的写法直接通过 ctx 入参。
3. helper,service 中的 this 指向 helper,service 对象本身,使用 this.ctx 访问 context 对象,例如 this.ctx.cookies.get('foo')。

例子:controller使用方式

class HomeController extends Controller {async index() {// extend-applicationthis.app.foo();  await this.ctx.render('home');}
}

三、helper的扩展和使用

1.扩展

@file(application.js)module.exports = {formatDate(date) {let time = '2012';console.log('time: ', time);return time}
}

2.使用

1.controller、service中使用

使用方法: this.ctx.helper.fn()

class HomeController extends Controller {async index() {        this.ctx.helper.formatDate(1453426595000);}
}

2.html中使用

使用:helper.fn()

<span><%=helper.formatDate(list[i].dateline)%></span>

四、request的扩展和使用

1.扩展

/*外部使用方式:this.ctx.request.fn()
*/
module.exports = {rfn(){console.log('我是extend-request的方法');}
}

2.使用

// controller、service中的使用方法
this.ctx.request.rfn();

5.extend的详细用法相关推荐

  1. c语言 extend 函数,jQuery中$.extend()数组合并用法

    jQuery中$.extend()数组合并用法总结 jQuery为开发插件提拱了两个方法, 分别是: jQuery.fn.extend(object); jQuery.extend(object); ...

  2. Android命令行工具logcat详细用法!

    logcat是Android中一个命令行工具,可以用于得到程序的log信息. 见板凳详细说明!      本贴内容来自网络,引用网址为:http://hi.baidu.com/%C9%C1%D2%AB ...

  3. __declspec关键字详细用法

    __declspec关键字详细用法 2009-01-21 16:23 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与ext ...

  4. $.extend 的相关用法

    $.extend 的相关用法 1.1 $.extend(result,item1,item2-..) 将所有的参数项都合并result中,返回result,会破坏result的结构. 1.2 $.ex ...

  5. mysql left/right join算法效率分析_mysql left join,right join,inner join超详细用法分析

    MySQL left join,right join,inner join超详细用法分析 下面是例子分析 表A记录如下: aID        aNum 1           a20050111 2 ...

  6. python sort怎么用,Linux Sort命令详细用法(有实例)

    Linux Sort命令详细用法(有实例) sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! Linux sort命令进阶: 1 sort的工作原理 so ...

  7. vue性能优化-------vendor优化详细用法(瘦身),减小体积,引入cdn

    vue性能优化-------vendor优化详细用法(瘦身),减小体积,引入cdn 原创ChrisWang_ 最后发布于2019-05-24 10:25:58 阅读数 1332  收藏 展开 vue性 ...

  8. oracle rtrim(),Oracle ltrim() rtrim() 函数详细用法

    嘿嘿,今天在论坛里看了一篇帖子,讨论ltrim() 函数的详细用法,下面我借几个高手的回答总结一下: 先看几个实例: SQL> select ltrim('109224323','109') f ...

  9. pythonrange函数用法_python range()函数详细用法

    python range()函数详细用法 函数原型:range(start, end, scan): 参数含义:start:计数从start开始.默认是从0开始.例如range(5)等价于range( ...

最新文章

  1. linux与linux的连接,linux 硬链接与软连接
  2. Asp.net的加密解密技巧--[转载]
  3. react router 级联路由_前端路由原理解析和实现
  4. 《操作系统》OS学习(三):系统调用
  5. 利用计算机录音模拟声波,2016年计算机一级考试题库及答案
  6. ICCV 2021 | 模型安全不容忽视!特定样本触发器的隐形后门攻击方法
  7. Java BIO多人聊天室
  8. Android UI 备忘:DrawerLayout
  9. Tomcat免安装版执行tomcat9.exe闪退
  10. ARM寄存器的操作方法
  11. 移动端车牌识别,交警助力
  12. envi精度评定_envi分类精度评价操作步骤
  13. [cesium] 卫星雷达传感器,雷达探测效果
  14. django-simple-sso, django-auth-ldap, python-ldap 单点登录(一)
  15. ILDasm和ILAsm简单使用
  16. [工具]-WIKI/文档编写相关软件
  17. 多台计算机共享内存_共享内存多处理器和指令执行| 计算机架构
  18. 数据保护与隐私无从下手?IBM Guardium在全面可靠上拔头筹!
  19. Android4.0.x 安全模式的分析
  20. 高并发下唯一订单号生成器【16位数字订单号】

热门文章

  1. linux设置ramdisk模块,Linux系统中的RAMdisk设置
  2. UI霓虹灯风格图标设计
  3. 人工智能为游戏带来提升
  4. Android SDK下载配置教程
  5. Lesson 16 A polite request 彬彬有礼的要求
  6. 纯电阻电路的分析方法——回路电流法
  7. Spring中的循环依赖
  8. Js清除指定cookie
  9. 使用rman nocatalog方式备份Oracle - NetBackup配置方法
  10. 位运算简介及实用技巧(四):实战篇 [Matrix67]