Node.js(2009 年 Ryan Dahl 发布)把浏览器的 JS 引擎(V8)搬到了服务器,让 JS 第一次能写后端。它的架构核心是「事件循环 + 非阻塞 I/O」:遇到文件读写、网络请求这类等待操作时不傻等,把回调挂起、继续处理别的请求,I/O 完成后由事件循环调度回调。单线程却高并发的秘密全在这里。
它特别适合 I/O 密集型场景(接口服务、实时聊天、代理网关、构建工具);反过来不适合 CPU 密集计算(单线程会卡住整个进程,图像处理应开子进程或交给 C++ 扩展)。npm 生态是它最大的护城河——前端工具链(webpack/vite/eslint)几乎全部跑在 Node 上。
const http = require('http'); // 一个非阻塞 HTTP 服务器:等请求时不占用 CPU http.createServer((req, res) => { // 模拟 I/O:定时器是宏任务,期间可服务其他请求 setTimeout(() => { res.end('hello from node'); }, 100); }).listen(3000, () => console.log('http://localhost:3000')); // 单线程的证据:死循环会卡住整个进程 // while (true) {} // 千万别解开注释