2016-03-06 67 views
0

这里是类别:http.Server文档的NodeJS事件监听器逻辑

enter image description here

[Q1]:是功能(请求,响应){...}请求事件的监听器?

[Q2]:如果从我的理解来看,每当有请求时,监听者就会被调用?

[Q3]:根据以下,

enter image description here

意思,如果我通过在侦听器作为一个参数,它会在请求事件自动记录我可以传递任何功能?目的?

如果我通过函数(请求,响应){...},当它被请求事件触发时,它是否就是所谓的回调函数?

不太清楚有关回调函数

回答

2

requestListener的定义是你传递给http.createServer()方法的功能。如果你传递了这个函数,那么它会在http服务器接收到的每个传入请求中被调用。

而且,当它被调用时,将按照该顺序使用两个参数,一个request对象和一个response对象进行调用。

您传递给http.createServer()的函数requestListener被称为callback函数,因为您传递的函数将在稍后被其他代码调用。

下面是一个简单的例子:

// Create an simple http server that knows about one request URL 
var server = http.createServer(function(req, res) { 
    if (req.url === "/") { 
     res.writeHead(200, {'Content-Type': 'text/plain'}); 
     res.end('okay'); 
    } else { 
     res.writeHead(200, {'Content-Type': 'text/plain'}); 
     res.end('not okay'); 
    } 
}); 

[Q1]:是函数(请求,响应){...}的请求事件的监听器?

这是一个回调函数,会自动为request evnet注册,因此会针对每个传入的http请求进行调用。

[Q2]:如果据我了解,每当有请求时, 侦听器被调用?

是的。

[Q3]:这是否表示如果我传入一个监听器作为参数,它会自动注册请求事件 ?

是的。

我可以传入任何函数Object吗?

是的。您必须按照顺序将请求和响应适当地声明为参数,但是您可以根据需要命名这些参数。它们的值作为第一个和第二个参数传递。参数的名称是您选择在函数中使用的任何名称。通常的约定是使用(req, res)(request, response),因为这会使其他node.js开发人员更容易识别您的代码。

如果我传入函数(request,response){...},请求事件触发时是否有所谓的 回调函数?

是的。

不太清楚有关回调函数

的定义,它只是你作为参数传递给另一个函数的函数。它可以是一个名为的函数,它被定义为一个命名函数,或者它可以是一个内联匿名函数,如上例所示。它并不重要。它被称为callback function,因为它将在未来某个时间被其他代码“回调”。