是nodeJs事件驱动?

在“专业NodeJS”中,我发现这个语句“这个项目(NodeJS)不像其他服务器端的JavaScript平台,所有的I / O原语都是事件驱动的,而且没有办法绕过它。 但是,据我所知,NodeJS是事件驱动的,NodeJS中的stream是事件驱动的。 那么有人能解释这句话吗?

Node.js是一个asynchronous事件驱动框架。 在下面的“hello world”示例中,可以同时处理多个连接。 在每次连接时,callback被触发,但是如果没有工作要做,节点正在hibernate。

const http = require('http'); const hostname = '127.0.0.1'; const port = 1337; http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }).listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); 

这与现在使用OS线程的更常见的并发模型形成对比。 基于线程的networking相对而言效率低下,使用起来非常困难。 而且,Node的用户不用担心死锁进程 – 没有锁。 Node中几乎没有函数直接执行I / O,所以进程永远不会阻塞。

详情请参阅源文件 。