Skip to content

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周)

  1. Node.js 基础

    • 安装与配置
    • npm 包管理
    • 模块系统 (CommonJS/ES Module)
  2. 核心模块

    • fs 文件系统
    • http/https 网络
    • path 路径处理
    • events 事件
    • stream 流
  3. 异步编程

    • Callback
    • Promise
    • async/await

第二阶段:Web 框架 (2-3周)

  1. Express(推荐入门)

    • 路由
    • 中间件
    • 模板引擎
    • 静态文件
  2. Koa(进阶选择)

    • Context 上下文
    • 洋葱模型
    • async/await
  3. NestJS(企业级)

    • TypeScript
    • 依赖注入
    • 装饰器
    • 模块化

第三阶段:数据库与认证 (2-3周)

  1. 数据库操作

    • MySQL/PostgreSQL
    • MongoDB
    • Prisma/TypeORM
  2. 认证授权

    • JWT
    • Passport.js
    • OAuth 2.0

第四阶段:实战与部署 (持续)

  1. 测试

    • Jest 单元测试
    • Supertest API 测试
  2. 部署运维

    • 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 实战》

🎯 开始学习

选择一个方向开始深入学习:

🚀 第一个 Express 应用

安装

bash
mkdir my-app && cd my-app
npm init -y
npm install express

Hello 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 应用就运行起来了!🎉

💡 最佳实践

  1. 使用 TypeScript - 提高代码质量和可维护性
  2. 环境变量管理 - 使用 dotenv 管理配置
  3. 错误处理 - 统一的错误处理中间件
  4. 日志记录 - 使用 Winston 或 Pino
  5. 代码规范 - ESLint + Prettier
  6. 安全防护 - Helmet、rate-limit
  7. 测试覆盖 - Jest 单元测试
  8. API 文档 - Swagger/OpenAPI

🔗 相关技术


准备好了吗?让我们开始 Node.js 后端开发之旅!