“请求”和“回应”从哪里来,我怎么知道的?
我已经决定学习节点,所以我遵循,首先, 节点初学者书 。 正如我猜想其他很多资源,有“简单的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框架,因此可以在线获取大量的资源。