试图理解节点的createServercallback

使用Node.js hello world示例:

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/'); 

我试图findhttp.js中的createServer“查找”一个函数,然后将它传递给两个对象(上面被命名为“req”和“res”)。我已经通过http.js进行了search,发现是:

 exports.createServer = function(requestListener) { return new Server(requestListener); }; 

这是否意味着匿名function:

 function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); } 

…作为“requestListener”传递并…

 return new Server(requestListener); 

req和res对象被传回的地方?

是。 在Javascript函数本身是可以分配给“对象”的“值”。 既然你可以传递一个对象到另一个函数,那么你可以传递一个函数本身作为一个对象。

requestListener是名为requestListener的参数createServer ,用于调用Server constructor

你也可以在ruby中看到这个,在这里你可以调用一个函数,同时把它作为一个参数在do块中执行。