首先,我是尝试了解什么是Node.Js. 我有两个问题.
第一个问题
从Felix 的文章中,它说"在同一时间只能有一个回调触发.在回调完成执行之前,所有其他回调都必须排队".
然后,考虑以下代码(从nodejs官方网站复制)
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8124, "127.0.0.1");
Run Code Online (Sandbox Code Playgroud)
如果同时收到两个客户端请求,则表示以下工作流程:
我对吗?如果我是对的,如果在很短的时间内有数千个客户端请求,Node.js如何控制.
第二个问题
术语"事件循环"主要用于Node.js主题.我已经明白"事件循环"从下面的http://www.wisegeek.com/what-is-an-event-loop.htm ;
事件循环 - 或主循环,是程序中的一个构造,用于控制和分派初始事件后的事件.
初始事件可以是任何东西,包括按下键盘上的按钮或单击程序上的按钮(在Node.js中,我认为初始事件将是http请求,数据库查询或I/O文件访问).
这称为循环,不是因为事件循环并且连续发生,而是因为循环准备事件,检查事件,调度事件并重新重复该过程.
我对第二段有冲突,特别是" 重复这个过程 "这句话.我接受上面的问题上面的http.createServer代码绝对是"事件循环",因为它反复监听http请求事件.
但我不知道如何识别以下代码,无论是事件驱动还是事件循环.除了在db查询完成后触发的回调函数之外,它不会重复任何操作.
database.query("SELECT * FROM table", function(rows) {
var result = rows;
});
Run Code Online (Sandbox Code Playgroud)
请让我听听你的意见和答案.