楼层: 首页/ 软件技术/ Node.js 全栈实战/ 为什么学 Node.js,怎么把它装上
01

为什么学 Node.js,怎么把它装上

Why Node.js & Setup

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 LTS2024 年 10 月当前稳定 LTS,本页示例以它为基线,绝大多数教程和线上项目都在这一档。
Node.js 24 LTS2025 年 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

# 第一步:装 nvm(版本管理器),官网 nvm.sh 有最新一行命令 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash # 重开终端后,安装 Node 22 LTS nvm install 22 # 把 22 设成默认版本 nvm use 22 nvm alias default 22 # 验证一下 node -v # 应该输出 v22.x.x npm -v # 应该输出 10.x.x
$ node -v v22.11.0 $ npm -v 10.9.0
为什么别去官网下 pkg

官网那个安装包会把 Node 写死成一个版本。过两个月你想试 Node 24,就得卸了重装;公司老项目要 Node 18,你又得折腾。nvm 的逻辑是"手机开了应用分身"——nvm install 18、nvm use 18 一行就切走了,互不干扰。这是全世界后端工程师的标配习惯。

第一个程序:Hello,服务器

新建一个文件夹,写一个 app.js。注意,Node 程序跑在终端里,不是浏览器里。

app.js —— 你的第一个 Node 程序

// 这是 Node 里最简单的一行:在终端打印一句话 console.log("你好,Node.js!我终于跑出浏览器了。"); // 读一下当前用的是哪个 Node 版本 console.log("当前 Node 版本:", process.version);

运行它

# 在终端里,进到 app.js 所在文件夹,敲: node app.js
$ node app.js 你好,Node.js!我终于跑出浏览器了。 当前 Node 版本: v22.11.0

三种运行方式:node、--watch、REPL

node app.js → 最基础:跑一次就结束
写文件 → 终端敲命令 → 看结果。改了代码要重新敲。
什么时候用:跑一次性脚本、命令行工具。每次改完手动重跑。
node --watch app.js → 自动热重载(Node 18+ 原生支持)
文件一保存,Node 自动帮你重启,不用再敲命令。
什么时候用:写服务器时最合适。以前要装个 nodemon 包才能干这事,现在 Node 自带 --watch,零依赖。
直接敲 node → 进 REPL:即时试一句
终端里只敲 node 回车,进入一个"打一行跑一行"的交互环境,像浏览器控制台。
什么时候用:临时验证一行表达式。比如不确定 Math.max(1,5,3) 结果,进去敲一下立刻知道。按两次 Ctrl+C 退出。
记
本章小结

① Node.js = V8 引擎 + libuv 事件循环,单线程、非阻塞,天生适合写网络服务。

② 装版本用 nvm,生产上用 偶数 LTS(22 / 24),别追奇数尝鲜版。

③ 开发时用 node --watch app.js 热重载,省得手滑反复敲命令。