老师,关于ctx.set()我存在困惑
老师视频中是使用ctx.set('X-Response-Time', `${ms}ms`)来设置的X-Response-Time属性。
而在获取的使用却使用ctx.response.get('X-Response-Time')得到属性。是ctx的set方法就默认直接作用在response上吗?那可不可以ctx.get('X-Response-Time')得到属性呢?
而且之前视频中,关于获取Request的body,使用的是ctx.request.body方法,而设置并且发出Response body则是直接用ctx.body方法。老师是不是如果直接ctx.方法是默认都作用在response上啊?而request对于ctx则要强调是request在打点调用方法(ctx.request.方法)?
正在回答
同学你好,解答如下:
1、ctx.set等价于ctx.response.set,即作用于response上。
2、不可以使用ctx.get('X-Response-Time')得到属性。
3、如下理解不对:
具体如下:
koa2框架中,为了让我们能够简写代码,提供了一些方法的别名,比如ctx.set就是ctx.response.set的别名,二者等价;而ctx.get是ctx.request.get的别名,即ctx.get与ctx.request.get等价,所以ctx.get不能获取到response上的设置的X-Response-Time。这些别名没有规律,并不是ctx.xxx就对应着ctx.response.xxx。
常见的别名还有如下内容:
1)ctx.body是ctx.response.body的别名
2)ctx.method是ctx.request.method的别名
3)ctx.query是ctx.request.query的别名
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星