为什么学 Node.js,怎么把它装上
2009 年之前,JavaScript 是个"只能待在浏览器里的玩具"。一个叫 Ryan Dahl 的家伙把 Chrome 的 V8 引擎扒下来,外面包了一层能操作文件、能发网络请求的壳——Node.js 就这么来了。从此 JavaScript 跑出了浏览器,而 npm 很快长成了世界上最大的包管理器,你能想到的工具基本都有人写好了。
论Node.js 到底是什么
拆开看就两层:里面是 Google 的 V8 引擎(负责跑 JavaScript),外面是 libuv(一个用 C 写的事件循环和线程池,负责处理文件、网络这些操作系统的活)。你写的 JS 代码,交给 V8 跑;遇到读文件、发请求这种"要等"的事,Node 不傻等,交给 libuv 在后台干活,自己先去处理别的请求。
一句话总结它的脾气:单线程、非阻塞、事件驱动。同一个时刻它只干一件事,但它极擅长"同时等一千件事慢慢发生"——这天生就是写网络服务的料。
为什么值得学:① 你已经会写一点 JS,不用重新学一门语言;② 前端的 React/Vue 生态和后端是同一套语言体系,全栈是真的全栈;③ 写接口、写爬虫、写命令行工具、写 Electron 桌面应用,它都能干。
版本基线:先搞清楚装哪个
Node.js 有个惯例:偶数版是 LTS(长期支持版),能在生产环境放心用;奇数版是尝鲜版,半年就淘汰。别追新,生产上追 LTS 就对了。
| 版本 | 发布时间 | 地位 |
|---|---|---|
| Node.js 22 LTS | 2024 年 10 月 | 当前稳定 LTS,本页示例以它为基线,绝大多数教程和线上项目都在这一档。 |
| Node.js 24 LTS | 2025 年 10 月 | 最新 LTS,新特性更多,新项目可直接上。 |
| npm 10+ | 随 Node 20 自带 | Node 自带的包管理器,本页命令默认它。 |
| pnpm 9+ / yarn 4+ | 独立安装 | 更快更省磁盘的替代品,第 3 章细讲。 |
安装:强烈推荐用版本管理器
别直接去官网下安装包一路下一步。真实开发中你会同时有好几个项目,有的要 Node 18、有的要 Node 22,硬装一个版本会互相打架。正确姿势是用 nvm(Windows 上用 fnw 或 nvm-windows)管理多个版本,随时切换。
Mac / Linux:用 nvm 装 Node 22
官网那个安装包会把 Node 写死成一个版本。过两个月你想试 Node 24,就得卸了重装;公司老项目要 Node 18,你又得折腾。nvm 的逻辑是"手机开了应用分身"——nvm install 18、nvm use 18 一行就切走了,互不干扰。这是全世界后端工程师的标配习惯。
第一个程序:Hello,服务器
新建一个文件夹,写一个 app.js。注意,Node 程序跑在终端里,不是浏览器里。
app.js —— 你的第一个 Node 程序
运行它
三种运行方式:node、--watch、REPL
--watch,零依赖。node 回车,进入一个"打一行跑一行"的交互环境,像浏览器控制台。Math.max(1,5,3) 结果,进去敲一下立刻知道。按两次 Ctrl+C 退出。① Node.js = V8 引擎 + libuv 事件循环,单线程、非阻塞,天生适合写网络服务。
② 装版本用 nvm,生产上用 偶数 LTS(22 / 24),别追奇数尝鲜版。
③ 开发时用 node --watch app.js 热重载,省得手滑反复敲命令。