“请求”和“回应”从哪里来,我怎么知道的?

我已经决定学习节点,所以我遵循,首先, 节点初学者书 。 正如我猜想其他很多资源,有“简单的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是一个自动添加到“请求”事件的函数。

(来自node.js站点)

我无法find或弄清楚这是如何触发函数得到它的parameter passing,以及如何find它。 所以…我怎么知道这些参数来自哪里,他们提供什么方法​​等等?

提前致谢!

在JavaScript中,函数可以作为parameter passing给方法。 例:

 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做的是上面的,传递一个可以接受参数的函数。 一个新的服务器希望你传入一个可以调用的函数。 服务器将执行内部操作,它将创build一个请求和响应对象,然后调用你传递给这些variables的函数。

阅读有关这些参数的详细信息。

这应该是创build堆栈: https : //github.com/joyent/node/blob/master/lib/http.js#L62 > https://github.com/joyent/node/blob/master/lib/_http_server .js#L253所以如果一个请求被触发,这应该被触发: https : //github.com/joyent/node/blob/master/lib/_http_server.js#L502 – 也许这个: https:// github的.com / Joyent的/节点/斑点/主/ LIB / _http_server.js#L505

node.js文档解释了关于http.ClientRequest和http.ServerResponse的所有知识 ,包括方法和事件。

如果你一般需要关于HTTP协议的信息,你可以通过使用它来find很多资源,比如HTTP Wikipedia页面 。

如果您想详细了解HTTP是如何在节点中实现的,则必须跳转到node.js源代码中 。

另外,您可能对express.js感兴趣, express.js是最常用的节点Web框架,因此可以在线获取大量的资源。