📦 Node.js 开发

Node.js基于Chrome V8引擎的JavaScript运行时,事件驱动、非阻塞I/O,适合高并发Web应用。

学习时间线

2022年4月 - 2023年7月(16个月)

阶段一:环境搭建(2022-04)

  • Node.js安装、版本管理

  • npm/yarn/pnpm包管理

  • 模块系统(CommonJS、ES Modules)

  • 开发工具配置

阶段二:Express框架(2022-05)

  • 路由、中间件

  • RESTful API设计

  • 模板引擎

  • 错误处理

阶段三:异步编程(2022-09)

  • 回调、Promise、async/await

  • 事件循环原理

  • MongoDB、MySQL、Redis

  • Stream流处理

阶段四:TypeScript(2023-07)

  • TypeScript基础

  • 类型系统、接口

  • Express类型定义

  • 装饰器、工具类型

阶段五:实时通信和优化(2023-01)

  • WebSocket、Socket.IO

  • 集群模式、PM2

  • 性能优化、缓存策略

  • 内存和CPU优化

学习文档

  1. 01-环境搭建.md - Node.js安装、npm、模块系统

  2. 02-Express框架.md - 路由、中间件、RESTful API

  3. 03-异步编程与数据库.md - Promise、async/await、MongoDB、MySQL、Redis

  4. 04-TypeScript集成.md - TypeScript类型系统、Express类型定义

  5. 05-WebSocket与性能优化.md - Socket.IO、集群、性能优化

Node.js核心特性

事件驱动

  • 事件循环:单线程事件循环模型

  • 非阻塞I/O:异步操作,高并发

  • 回调队列:宏任务和微任务

  • 定时器:setTimeout、setImmediate

  • EventEmitter:事件发射器模式

异步编程

  • 回调函数:最基础的异步方式

  • Promise:解决回调地狱

  • async/await:同步风格写异步代码

  • Stream:流式处理大数据

  • Worker Threads:多线程支持

生态系统

  • npm:最大的包仓库(200万+)

  • Express:最流行的Web框架

  • Mongoose:MongoDB ORM

  • Socket.IO:WebSocket封装

  • TypeScript:类型系统增强

技术栈

Web框架

  • Express:简洁、灵活、生态丰富

  • Koa:现代、中间件优雅

  • Fastify:高性能、TypeScript友好

  • NestJS:企业级、Angular风格

数据库

  • MongoDB:NoSQL、文档数据库

  • MySQL:关系型数据库

  • PostgreSQL:功能强大的关系型数据库

  • Redis:缓存、会话存储

ORM/ODM

  • Mongoose:MongoDB ORM

  • Sequelize:SQL ORM

  • TypeORM:TypeScript ORM

  • Prisma:现代ORM、类型安全

工具库

  • lodash:工具函数集

  • moment/dayjs:日期处理

  • axios:HTTP客户端

  • joi/yup:数据验证

  • bcrypt:密码加密

  • jsonwebtoken:JWT认证

应用场景

Web后端

  • RESTful API服务

  • GraphQL服务

  • 微服务架构

  • BFF层

实时应用

  • 聊天应用

  • 协作编辑

  • 实时通知

  • 在线游戏

工具链

  • Webpack、Vite构建工具

  • ESLint、Prettier代码工具

  • Jest、Mocha测试框架

Serverless

  • AWS Lambda

  • Azure Functions

  • Vercel Functions

最佳实践

项目结构

src/
├── app.ts              # Express应用
├── server.ts           # 服务器启动
├── routes/             # 路由
├── controllers/        # 控制器
├── models/             # 数据模型
├── middlewares/        # 中间件
├── services/           # 业务逻辑
├── utils/              # 工具函数
└── config/             # 配置

异步处理

  • 优先使用async/await

  • Promise.all并行操作

  • 控制并发数量

  • 统一错误处理

  • 避免回调地狱

错误处理

  • try-catch包裹异步代码

  • 错误中间件统一处理

  • unhandledRejection监听

  • 日志记录完整错误栈

性能优化

  • 使用集群模式

  • Redis缓存热点数据

  • 数据库查询优化

  • 压缩响应数据

  • 限流防止滥用

安全

  • 输入验证

  • SQL注入防护

  • XSS防护

  • CSRF防护

  • 安全响应头(helmet)

学习资源

官方文档

  • Node.js官网:https://nodejs.org

  • Express文档:https://expressjs.com

  • npm文档:https://docs.npmjs.com

推荐书籍

  • Node.js实战

  • 深入浅出Node.js

  • Node.js设计模式

核心: Node.js通过事件循环和非阻塞I/O实现高并发,npm生态丰富,适合Web后端和实时应用开发。