node.js - 有人可以解释这个回调吗?

时间:2016-02-02 23:56:24

标签: 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
var server = http.createServer(handleRequest);
server.listen(PORT, function () {

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

2 个答案:

答案 0 :(得分:4)

他们真的没有什么不同。在第一个中,您定义了当场处理请求的功能,然后必须在结束时开始收听。

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

在第二步中,您定义了在其他地方处理请求的功能,并且不使用链接。

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

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

答案 1 :(得分:2)

真的偏好。

有些人更喜欢在参数列表中处理函数定义(典型的旧文档),而其他人则更喜欢传入已定义函数的名称。

我发现第二个例子更容易维护,更灵活,但实际上归结为偏好。