是否可以访问Node的http.createServer中的请求和响应对象的结果?

时间:2013-10-28 03:26:39

标签: node.js node.js-connect

这可能是完全显而易见的,但我想确认允许通过createServer方法中的匿名或命名函数访问请求和响应对象的“机制”是关闭的一个例子吗?那就是createServer是外部函数,还有一些其他返回函数是可以访问请求和响应对象的内部函数吗?

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

1 个答案:

答案 0 :(得分:1)

不,它们只是简单的方法参数。这是我的标准“封闭的超级明显例子”片段:

var tipper = function (percentage) {
  return function tip(total) {
    return total + (total * (percentage / 100));
  };
};

var generous = tipper(20);
var normal = tipper(18);
var stingy = tipper(8);

console.log(generous(24.50), normal(24.50), stingy(24.50));

内部tip函数对percentage变量的持久访问,即使在返回外部tipper函数之后,也是关闭的。