“请求”和“响应”来自哪里,我怎么能找到?

时间:2013-12-05 20:34:25

标签: javascript node.js events backend function-parameter

我决定学习节点,我正在关注,首先是The Node Beginner Book。正如在我猜的其他许多资源中,有“简单的HTTP服务器”,第一步,如:

var http = require("http");

http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
}).listen(8888);

据我所知,当有人(在这种情况下我是localhost:8888)发出请求时,会触发一个事件,并且传递给http.createServer的匿名函数会被触发。我在这里找到了我已经找到的关于http.createserver的文档,供那些认为有用的人使用:

  

http.createServer([requestListener])

     

返回一个新的Web服务器对象。

     

requestListener是一个自动添加到'request'事件的函数。

(来自node.js网站)

我无法找到或弄清楚这个触发函数如何通过它传递参数,以及如何找到它。那么......我怎么知道这些参数来自哪里,它们提供了哪些方法等等?

提前致谢!

3 个答案:

答案 0 :(得分:2)

在JavaScript中,函数可以作为参数传递给方法。例如:

function funcA(data) {
    console.log(data);
}
function funcB(foo) {
    foo('I'm function B');    // Call 'foo' and pass a parameter into that function
}
funcB(funcA); // Pass funcA as a parameter into funcB

您正在使用http.createServer进行上述操作,传递一个可以接受参数的函数。 new server期望您传入可以调用的函数。服务器将执行内部操作,它将创建一个请求和响应对象,然后使用这些变量调用您传入的函数。

了解有关这些参数的详细信息,请阅读Http Event: Request

答案 1 :(得分:1)

答案 2 :(得分:0)

node.js documentation,解释了您需要了解的关于http.ClientRequesthttp.ServerResponse的所有信息,包括方法和事件。

如果您需要一般的HTTP协议信息,可以通过Google搜索找到大量资源,例如HTTP Wikipedia page

如果您想详细了解如何在节点中实施HTTP,您必须跳转到node.js source code

此外,您可能对express.js感兴趣,{{3}}是节点最常用的Web框架,因此可以在线获得有关它的大量资源。