5.extend的详细用法
文章目录
- 一、重点
- 二、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的详细用法相关推荐
- c语言 extend 函数,jQuery中$.extend()数组合并用法
jQuery中$.extend()数组合并用法总结 jQuery为开发插件提拱了两个方法, 分别是: jQuery.fn.extend(object); jQuery.extend(object); ...
- Android命令行工具logcat详细用法!
logcat是Android中一个命令行工具,可以用于得到程序的log信息. 见板凳详细说明! 本贴内容来自网络,引用网址为:http://hi.baidu.com/%C9%C1%D2%AB ...
- __declspec关键字详细用法
__declspec关键字详细用法 2009-01-21 16:23 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与ext ...
- $.extend 的相关用法
$.extend 的相关用法 1.1 $.extend(result,item1,item2-..) 将所有的参数项都合并result中,返回result,会破坏result的结构. 1.2 $.ex ...
- mysql left/right join算法效率分析_mysql left join,right join,inner join超详细用法分析
MySQL left join,right join,inner join超详细用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 ...
- python sort怎么用,Linux Sort命令详细用法(有实例)
Linux Sort命令详细用法(有实例) sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! Linux sort命令进阶: 1 sort的工作原理 so ...
- vue性能优化-------vendor优化详细用法(瘦身),减小体积,引入cdn
vue性能优化-------vendor优化详细用法(瘦身),减小体积,引入cdn 原创ChrisWang_ 最后发布于2019-05-24 10:25:58 阅读数 1332 收藏 展开 vue性 ...
- oracle rtrim(),Oracle ltrim() rtrim() 函数详细用法
嘿嘿,今天在论坛里看了一篇帖子,讨论ltrim() 函数的详细用法,下面我借几个高手的回答总结一下: 先看几个实例: SQL> select ltrim('109224323','109') f ...
- pythonrange函数用法_python range()函数详细用法
python range()函数详细用法 函数原型:range(start, end, scan): 参数含义:start:计数从start开始.默认是从0开始.例如range(5)等价于range( ...
最新文章
- linux与linux的连接,linux 硬链接与软连接
- Asp.net的加密解密技巧--[转载]
- react router 级联路由_前端路由原理解析和实现
- 《操作系统》OS学习(三):系统调用
- 利用计算机录音模拟声波,2016年计算机一级考试题库及答案
- ICCV 2021 | 模型安全不容忽视!特定样本触发器的隐形后门攻击方法
- Java BIO多人聊天室
- Android UI 备忘:DrawerLayout
- Tomcat免安装版执行tomcat9.exe闪退
- ARM寄存器的操作方法
- 移动端车牌识别,交警助力
- envi精度评定_envi分类精度评价操作步骤
- [cesium] 卫星雷达传感器,雷达探测效果
- django-simple-sso, django-auth-ldap, python-ldap 单点登录(一)
- ILDasm和ILAsm简单使用
- [工具]-WIKI/文档编写相关软件
- 多台计算机共享内存_共享内存多处理器和指令执行| 计算机架构
- 数据保护与隐私无从下手?IBM Guardium在全面可靠上拔头筹!
- Android4.0.x 安全模式的分析
- 高并发下唯一订单号生成器【16位数字订单号】