我仍然对节点回调如何工作感到困惑。查看本教程:http://www.nodebeginner.org/
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);
我的理解是,当服务器收到请求时,会传递请求和响应参数。但是,我不确定你会如何通过语法来判断。 createServer函数在实际收到请求之前是否返回任何内容,然后返回两个对象,即请求和响应?
答案 0 :(得分:1)
不,createServer
方法会立即返回with a new web server object。然后立即调用该Web服务器对象的listen
方法,服务器开始侦听端口8888上的连接。listen
调用也立即返回;您可以通过在下一行添加console.log('here');
并在运行脚本时查看它如何写入终端来证明这一点。作为listen
调用的结果,只要对端口8888发出新的HTTP请求,就会调用回调作为createServer
的唯一参数来处理请求
由于Node在单个线程(more or less)中运行,因此任何阻止该线程的操作(如等待服务器连接,数据库查询或对远程请求的响应)都是通过使用类似示例中的回调来处理异步。