这是NodeJS的东西,代码是:
var http = require("http");
function onRequest(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
我的问题是如何进入最后一行,函数onRequest不带参数..我是Javascript的新手但是onRequest不应该采用函数中定义的2个参数?有人可以帮我吗?我被困了一个小时:(
答案 0 :(得分:2)
你实际上并没有调用这个方法。你告诉createServer
它的requestListener
回调函数是什么。
来自node.js文档(http://nodejs.org/api/http.html#http_http_createserver_requestlistener):
http.createServer([requestListener])
返回一个新的Web服务器对象。
requestListener是一个自动添加到的函数 'request'事件。
答案 1 :(得分:1)
执行onRequest函数需要2个参数。
你的最后一行:
http.createServer(onRequest).listen(8888);
实际上并没有执行onRequest,虽然我可以理解为什么你会这么认为。它将对onRequest函数的引用传递给http.createServer函数/方法。
createServer将保存指向onRequest函数的指针,然后当请求进入服务器时,它将执行onRequest。该执行将包括请求和响应参数。
有关详细信息,本文对此模式提供了相当简单明了的解释,称为回调。它通常与异步编程一起使用,但不一定。
http://recurial.com/programming/understanding-callback-functions-in-javascript/