📘 Node.js 后端 · 从入门到实战

🎯 30章 完整体系
Node.js 是什么 为什么选择 Node.js 发展史 应用场景 环境搭建
Hello World REPL 环境 模块化初探 CommonJS / ES Module
fs 概述 读取文件 写入/追加 删除/目录 文件状态
path 概述 路径拼接/解析 文件名/扩展名 格式化/规范化
HTTP 服务器 请求与响应 GET/POST 参数 响应头/状态码 返回 HTML
URL 解析 url.format 查询字符串解析 序列化
EventEmitter 监听/触发/移除 参数传递 错误事件
可读/可写流 管道流 pipe 链式流 文件流应用
Buffer 创建/操作 字符串转换 哈希 (MD5/SHA) 加密与解密
npm init/install package.json 语义化版本 npm scripts 常用命令
Express 是什么 Hello World 路由基础 路由参数/模块化
中间件概念 应用/路由级 错误处理 express.static morgan / cors
Request 对象 Response 方法 JSON/HTML/文件 重定向/Cookie
EJS 安装/配置 变量/循环/条件 布局与局部模板 数据传递
multer 配置 单/多文件上传 大小/类型过滤 文件重命名
Cookie 机制 Session 机制 express-session 登录状态管理
mysql2 连接 CRUD 操作 参数化查询 连接池管理
Mongoose 连接 Schema / Model CRUD 操作 数据验证
REST 风格 端点设计原则 HTTP 动词/状态码 API 版本 / Swagger
JWT 原理 jsonwebtoken Token 刷新 角色权限控制
全局错误中间件 自定义错误类 winston 日志 日志分级/轮转
express-validator XSS / CSRF 防护 HTTPS 配置 helmet 安全头
Jest 框架 异步/Mock 测试 集成测试 supertest
瓶颈分析 异步/缓存策略 compression cluster 集群
WebSocket 协议 ws 模块 广播消息 Express 集成
项目背景/目标 功能模块划分 技术栈/数据库设计 目录结构
注册/登录 (JWT) 信息获取/更新 密码加密/重置 权限管理
CRUD 接口 文件上传/处理 数据关联/分页 搜索功能
dotenv / PM2 Nginx 反向代理 Docker 部署 CI/CD 流水线
架构复盘 常见问题/优化 功能扩展建议 学习资源推荐