# Node.js:一个让 JavaScript 在服务器端运行的运行时环境
- 不是编程语言(使用 JavaScript)
- 不是框架(但生态中有框架如 Express、NestJS)
- 是基于 Chrome V8 引擎 的 JavaScript 运行平台
# npm:(Node Package Manager) Node.js 的默认包管理器,也是全球最大的开源软件注册表
- 命令行工具:安装在电脑上的 npm 命令
- 代码仓库:托管超过 300 万个 可复用代码包的仓库
- 依赖管理系统:通过 package.json 管理项目依赖
传统限制:JavaScript 只能在浏览器中运行
Node.js 突破:让 JavaScript 可以:
✅ 访问文件系统
✅ 操作操作系统
✅ 处理网络请求
✅ 创建服务器应用
✅ 开发命令行工具
✅ 构建桌面应用(通过 Electron)
Node.js 的应用领域:
✅ 后端:API 服务器、微服务
✅ 前端:构建工具(Webpack、Vite)、开发服务器
✅ 桌面:Electron 应用(VS Code、Slack、Figma)
✅ 移动:React Native 的构建工具链
✅ CLI:命令行工具
✅ IoT:物联网设备控制
传统多线程模型:
┌─线程1─┐ ┌─线程2─┐ ┌─线程3─┐
│ 等待I/O │ │ 等待I/O │ │ 等待I/O │ ← 大量内存消耗
└───────┘ └───────┘ └───────┘
Node.js 事件驱动模型:
┌───事件循环───┐
│ │
I/O 完成 → 回调函数
│ │
└──────────────┘ ← 单线程处理高并发
项目结构:
my-project/
├── package.json ← 项目配置清单(核心!)
├── package-lock.json ← 依赖树精确快照
├── node_modules/ ← 依赖包存放目录(通常很大)
└── src/
# Node.js 和 npm 下载链接:Node.js — Download Node.js®
官方推荐的安装方式有:nvm、fnm、docker

nvm 和 fnm 区别如下:


nvm 和 fnm 的选择:

npm 常用命令:
# 1. 项目初始化
npm init # 交互式创建
npm init -y # 快速创建(全部默认)
# 2. 安装依赖(最重要的命令)
npm install express # 安装并添加到 dependencies
npm i -D typescript # 安装并添加到 devDependencies
npm i -g nodemon # 全局安装(CLI 工具)
# 3. 根据 package.json 安装所有依赖
npm install
# 或简写
npm i
# 4. 运行脚本
npm start # 启动开发服务器
npm run dev # 构建开发版本
npm test # 运行测试
# 5. 依赖管理
npm update # 更新所有包
npm outdated # 检查过时包
npm audit # 安全审计
npm audit fix # 自动修复漏洞
# 6. 发布你的包
npm publish