egg框架各个上下文中的this中有些啥?
Posted IT飞牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了egg框架各个上下文中的this中有些啥?相关的知识,希望对你有一定的参考价值。
Controller 实例
Controller 类继承于 egg.Controller,会有下面几个属性挂在 this 上。
this.ctx
: 当前请求的上下文 Context 对象的实例,通过它我们可以拿到框架封装好的处理当前请求的各种便捷属性和方法。this.app
: 当前应用 Application 对象的实例,通过它我们可以拿到框架提供的全局对象和方法。this.service
:应用定义的 Service,通过它我们可以访问到抽象出的业务层,等价于 this.ctx.service 。this.config
:应用运行时的配置项。this.logger
:logger 对象,上面有四个方法(debug,info,warn,error),分别代表打印四个不同级别的日志,使用方法和效果与 context logger 中介绍的一样,但是通过这个 logger 对象记录的日志,在日志前面会加上打印该日志的文件路径,以便快速定位日志打印位置。
Service 实例
Service 实例,由于它继承于 egg.Service,故拥有下列属性方便我们进行开发:
this.ctx
: 当前请求的上下文 Context 对象的实例,通过它我们可以拿到框架封装好的处理当前请求的各种便捷属性和方法。this.app
: 当前应用 Application 对象的实例,通过它我们可以拿到框架提供的全局对象和方法。this.service
:应用定义的 Service,通过它我们可以访问到其他业务层,等价于 this.ctx.service 。this.config
:应用运行时的配置项。this.logger
:logger 对象,上面有四个方法(debug,info,warn,error),分别代表打印四个不同级别的日志,使用方法和效果与 context logger 中介绍的一样,但是通过这个 logger 对象记录的日志,在日志前面会加上打印该日志的文件路径,以便快速定位日志打印位置。
Application
this 就是 app 对象,在其中可以调用 app 上的其他方法,或访问属性
Context
this 就是 ctx 对象,在其中可以调用 ctx 上的其他方法,或访问属性
ctx.app
:有ctx.service
:有ctx.model
:有ctx.helper
:有ctx.config
:无
Helper
方法中this有以下属性:
- app
- config
- ctx
- service
- helper中其他所有属性和属性方法都挂载在原型上,可以直接访问;
Request
// app/extend/request.js
module.exports = {
get foo() {
return this.get('x-request-foo');
},
};
就可以这样使用啦:console.log(this.request.foo)
Response
// app/extend/response.js
module.exports = {
set foo(value) {
this.set('x-response-foo', value);
},
};
就可以这样使用啦:this.response.foo = 'bar';
以上是关于egg框架各个上下文中的this中有些啥?的主要内容,如果未能解决你的问题,请参考以下文章
egg 官方文档之:框架扩展(ApplicationContextRequestResponseHelper的访问方式及扩展)
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段