node.js – 有人可以解释这个callback?

这里有多个node.js教程,演示如何创build一个服务器。 但是,它们以不同的方式编码。 那么,你怎么知道什么时候写一个,而不是另一个呢? 这些教程都没有解释他们为什么如此写。

例如…

例1:

// Create an http server, passing in a function for some reason: http.createServer(function(request, response) { 

对比例2:

 // Create an http server, and then start it var server = http.createServer(handleRequest); server.listen(PORT, function () { 

提前致谢。 我真的很难理解这一点。

他们没有什么不同,真的。 首先,你正在定义处理请求的函数,然后不得不在最后开始监听。

 http.createServer(function(request, response) { ... }).listen(PORT, function() { ... }); 

第二,你定义了处理请求的函数,不要使用链接。

 function handleRequest(request, response) { ... } var server = http.createServer(handleRequest); server.listen(PORT, function() { ... }); 

他们都做同样的事情。 这取决于你如何写它。

偏好真的。

有些人喜欢在参数列表中处理函数定义(典型的文档也是如此),而另外一些则喜欢传入一个已定义函数的名字。

我发现第二个例子更容易维护,而且更加灵活,但是它真的归结为偏好。