老师,关于ctx.set()我存在困惑

老师,关于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回答

同学你好,解答如下:

1、ctx.set等价于ctx.response.set,即作用于response上。

2、不可以使用ctx.get('X-Response-Time')得到属性。

3、如下理解不对:

     http://img1.sycdn.imooc.com//climg/6088fbf7093b885a05540090.jpg            

具体如下:               

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 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师