Node.js 后端开发
欢迎来到 Node.js 后端开发知识库!
🟢 Node.js 简介
Node.js 是基于 Chrome V8 引擎的 JavaScript 运行时环境,让 JavaScript 可以在服务器端运行。凭借其非阻塞 I/O 和事件驱动的特性,Node.js 特别适合构建高并发、实时性强的 Web 应用。
🎯 适用场景
✅ 特别适合
- 实时应用 - WebSocket、聊天室、协作工具
- API 服务 - RESTful API、GraphQL 服务
- 微服务 - 轻量级服务、BFF 层
- 前端工具链 - 构建工具、脚手架、SSR
- I/O 密集型 - 文件操作、网络请求
- 全栈 JavaScript - 前后端使用同一语言
⚠️ 不太适合
- CPU 密集型计算(可以使用 Worker Threads)
- 需要强类型系统(可以使用 TypeScript)
- 对性能要求极高的场景(C++/Go 更合适)
🎯 学习路线
第一阶段:基础入门 (1-2周)
Node.js 基础
- 安装与配置
- npm 包管理
- 模块系统 (CommonJS/ES Module)
核心模块
- fs 文件系统
- http/https 网络
- path 路径处理
- events 事件
- stream 流
异步编程
- Callback
- Promise
- async/await
第二阶段:Web 框架 (2-3周)
Express(推荐入门)
- 路由
- 中间件
- 模板引擎
- 静态文件
Koa(进阶选择)
- Context 上下文
- 洋葱模型
- async/await
NestJS(企业级)
- TypeScript
- 依赖注入
- 装饰器
- 模块化
第三阶段:数据库与认证 (2-3周)
数据库操作
- MySQL/PostgreSQL
- MongoDB
- Prisma/TypeORM
认证授权
- JWT
- Passport.js
- OAuth 2.0
第四阶段:实战与部署 (持续)
测试
- Jest 单元测试
- Supertest API 测试
部署运维
- PM2 进程管理
- Docker 容器化
- 日志与监控
📊 框架对比
| 框架 | 特点 | 学习成本 | 适用场景 |
|---|---|---|---|
| Express | 简单灵活 | 🟢 低 | 中小型项目、快速开发 |
| Koa | 轻量现代 | 🟡 中 | 追求代码质量、灵活性 |
| NestJS | 企业级 | 🔴 高 | 大型项目、团队协作 |
| Fastify | 高性能 | 🟡 中 | 性能敏感、API 服务 |
✨ Node.js 特点
✅ 核心优势
- JavaScript 全栈 - 前后端统一语言
- npm 生态 - 最大的包管理生态系统
- 非阻塞 I/O - 高并发处理能力
- 事件驱动 - 适合实时应用
- 轻量高效 - 快速启动、低内存
- 活跃社区 - 大量开源项目和资源
⚠️ 注意事项
- 回调地狱(已被 Promise/async await 解决)
- 单线程(可以使用 Cluster/Worker Threads)
- 错误处理需要注意(未捕获异常会导致进程崩溃)
🏗️ 项目结构(Express 示例)
my-node-app/
├── src/
│ ├── controllers/ # 控制器
│ │ ├── userController.js
│ │ └── postController.js
│ ├── routes/ # 路由
│ │ ├── userRoutes.js
│ │ └── postRoutes.js
│ ├── models/ # 数据模型
│ │ ├── User.js
│ │ └── Post.js
│ ├── middlewares/ # 中间件
│ │ ├── auth.js
│ │ └── errorHandler.js
│ ├── services/ # 业务逻辑
│ │ └── userService.js
│ ├── utils/ # 工具函数
│ │ └── validator.js
│ ├── config/ # 配置
│ │ └── database.js
│ └── app.js # 应用入口
├── tests/ # 测试
├── package.json
├── .env # 环境变量
└── README.md📖 学习资源
官方资源
推荐教程
推荐书籍
- 《深入浅出 Node.js》
- 《Node.js 设计模式》
- 《Node.js 实战》
🎯 开始学习
选择一个方向开始深入学习:
- 👉 核心模块 - 掌握 Node.js 内置模块
- 👉 Express 框架 - 快速构建 Web 应用
- 👉 NestJS 框架 - 企业级应用开发
🚀 第一个 Express 应用
安装
bash
mkdir my-app && cd my-app
npm init -y
npm install expressHello World
javascript
// app.js
const express = require('express');
const app = express();
const port = 3000;
// 中间件
app.use(express.json());
// 路由
app.get('/', (req, res) => {
res.json({ message: 'Hello Node.js!' });
});
app.get('/api/users', (req, res) => {
res.json([
{ id: 1, name: '张三' },
{ id: 2, name: '李四' }
]);
});
app.post('/api/users', (req, res) => {
const user = req.body;
res.status(201).json({
message: '用户创建成功',
user
});
});
// 错误处理
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({
error: '服务器错误'
});
});
app.listen(port, () => {
console.log(`服务器运行在 http://localhost:${port}`);
});运行
bash
node app.js访问 http://localhost:3000,你的第一个 Node.js 应用就运行起来了!🎉
💡 最佳实践
- 使用 TypeScript - 提高代码质量和可维护性
- 环境变量管理 - 使用 dotenv 管理配置
- 错误处理 - 统一的错误处理中间件
- 日志记录 - 使用 Winston 或 Pino
- 代码规范 - ESLint + Prettier
- 安全防护 - Helmet、rate-limit
- 测试覆盖 - Jest 单元测试
- API 文档 - Swagger/OpenAPI
🔗 相关技术
- TypeScript - JavaScript 超集
- Prisma - 现代 ORM
- PM2 - 进程管理
- Docker - 容器化部署
准备好了吗?让我们开始 Node.js 后端开发之旅!