Nodejs - createServer()中回调函数的req和res参数

时间:2017-03-30 23:04:43

标签: node.js

enter image description here

我很困惑' parser = this'是的,因为我无法找到关于这个功能的呼唤,所以'这个'在这个原生代码中意味着什么?

这是github:https://github.com/nodejs/node/blob/v0.12/lib/_http_common.js

的链接

3 个答案:

答案 0 :(得分:0)

The value of this取决于函数的调用方式。 It appears that it is supposed to be called as a method of an HTTPParser instance

var parsers = new FreeList('parsers', 1000, function() {
  var parser = new HTTPParser(HTTPParser.REQUEST);
  // ^^^ parser object is created

  parser._headers = [];
  parser._url = '';

  parser[kOnHeaders] = parserOnHeaders;
  parser[kOnHeadersComplete] = parserOnHeadersComplete;
  parser[kOnBody] = parserOnBody;
  parser[kOnMessageComplete] = parserOnMessageComplete;
  // ^^^ function is assigned to parser instance

  return parser;
});

因此,我们可以假设this很可能会引用HTTPParser的实例。

答案 1 :(得分:0)

这是因为parser具有异步调用代码的范围。

答案 2 :(得分:0)

我找到了基本的c语言,当你输入httpParse空闲列表时,这些语言就会被调用 enter image description here 这是github的地址:https://github.com/joyent/http-parser