Javascript node.js-有人能解释一下这个回调吗?

Javascript node.js-有人能解释一下这个回调吗?,javascript,node.js,Javascript,Node.js,这里有不止一个node.js教程,演示如何创建服务器。但是,它们的编码方式不同。那么,你怎么知道什么时候该用这种方式写呢?没有一本教程能解释他们为什么这样写 例如 例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

这里有不止一个node.js教程,演示如何创建服务器。但是,它们的编码方式不同。那么,你怎么知道什么时候该用这种方式写呢?没有一本教程能解释他们为什么这样写

例如

例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() { ... });

他们都做同样的事情。这取决于你想怎么写。

它们其实没什么不同。在第一种情况下,您要定义用于当场处理请求的函数,然后必须在最后开始侦听

http.createServer(function(request, response) {
  ...
}).listen(PORT, function() { ... });
在第二种方法中,您定义了在别处处理请求的函数,而不使用链接

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

他们都做同样的事情。这取决于你想怎么写。

好!谢谢我想我是被一些事情挂住了,比如最后我必须开始听。就像,所有这些事情——现在做,以后再做——真的把我搞砸了。太好了!谢谢我想我是被一些事情挂住了,比如最后我必须开始听。比如,所有这些事情——现在做,以后再做——真的把我搞砸了。除了它的个人偏好之外,我唯一要补充的是命名函数对维护高质量堆栈跟踪和帮助调试的重要性。因此,请使用此函数而不是1:http.createServerfunction HandlerRequestRequest,response{…除了它的个人偏好之外,我唯一要添加的是命名函数对于维护高质量堆栈跟踪和帮助调试的重要性。因此,请使用此函数而不是1:http.createServerfunction HandlerRequest,response{。。。