使用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/');
Run Code Online (Sandbox Code Playgroud)
我试图找到http.js中的createServer"查找"一个函数然后传递给它的两个对象(上面的名称为'req'和'res'.我通过http.js搜索了我唯一的东西我发现是:
exports.createServer = function(requestListener) {
return new Server(requestListener);
};
Run Code Online (Sandbox Code Playgroud)
这是否意味着匿名功能:
function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}
Run Code Online (Sandbox Code Playgroud)
...作为'requestListener'传递并且......
return new Server(requestListener);
Run Code Online (Sandbox Code Playgroud)
...是req和res对象传回的地方?
是的。在 JavaScript 中,函数本身就是可以分配给“对象”的“值”。既然您可以将对象传递给另一个函数,那么您可以将函数本身作为对象传递。
requestListener是用于调用它的createServer命名参数。requestListenerServer constructor
您还可以在 ruby 中看到这一点,您可以在其中调用函数,同时将要在 do 块中执行的代码作为参数传递给它。