请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

4-2课中this.body指的是什么?

是koa响应事件对象的封装吗?

正在回答

1回答

Scott 2016-08-15 08:22:42

对,对于 res.send  的封装。


你可以扒进去看 koa 的源码,其实源代码很好理解,如下:

function respond() {
  // allow bypassing koa
  if (false === this.respond) return;
  var res = this.res;
  if (res.headersSent || !this.writable) return;
  var body = this.body;
  var code = this.status;
  // ignore body
  if (statuses.empty[code]) {
    // strip headers
    this.body = null;
    return res.end();
  }
  if ('HEAD' == this.method) {
    if (isJSON(body)) this.length = Buffer.byteLength(JSON.stringify(body));
    return res.end();
  }
  // status body
  if (null == body) {
    this.type = 'text';
    body = this.message || String(code);
    this.length = Buffer.byteLength(body);
    return res.end(body);
  }
  // responses
  if (Buffer.isBuffer(body)) return res.end(body);
  if ('string' == typeof body) return res.end(body);
  if (body instanceof Stream) return body.pipe(res);
  // body: json
  body = JSON.stringify(body);
  this.length = Buffer.byteLength(body);
  res.end(body);
}


0 回复 有任何疑惑可以回复我~
  • Scott #1
    敲错了,是 res.end
    回复 有任何疑惑可以回复我~ 2016-08-15 08:23:22
  • 提问者 杨洋1989 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2016-08-15 19:22:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信