阶段任务

0 项
  • 搭建 Node.js + Express 项目
  • 理解路由、中间件、Controller、Service 分层
  • 处理请求参数、响应 JSON 和错误
  • 配置 CORS,完成前后端本地联调
  • 使用 dotenv 管理环境变量
  • 使用 Zod、Joi 或 class-validator 做请求参数校验
  • 理解日志、requestId、统一异常和异步错误处理
  • 了解 Prisma 的 schema、migration 和 client
  • 编写基础单元测试或接口测试
  • 初步了解 NestJS 的 Module、Controller、Provider
  • 理解 npm scripts、dev、build、start、lint、test 的职责

建议练习

0 项
项目

任务清单 API

实现任务新增、列表、详情、更新状态、删除接口,使用数据库保存数据。

产出物一个能被前端调用的 Todo API 项目。
AI 协作

让 AI 新增一个接口

在已有 Express 项目里新增“获取任务统计”的接口,要求 AI 说明需要修改哪些文件。

产出物一个新增接口和对应测试请求。
API

参数校验和接口测试

为新增任务接口添加请求体校验,并为成功、参数错误、资源不存在各写一个测试或 curl 示例。

产出物一组可验证接口行为的测试用例或请求集合。
排错

增加请求日志

为 Express 服务增加请求日志和 requestId,确保报错时可以定位一次请求。

产出物日志中能看到 method、url、status、duration、requestId。

每日安排

Day 1

Express 最小服务

用最少代码跑通 Node 后端服务,理解路由、中间件和启动端口。

  • 初始化 package.json 并安装 express、cors、dotenv
  • 实现 GET /health 和 GET /api/tasks
  • 配置 nodemon 或 node --watch 开发启动命令
  • 用 curl 和浏览器验证服务可访问
当天产出一个可启动的 Express 最小项目。
Day 2

分层结构与统一响应

把路由、控制器、服务和错误处理拆开,避免所有逻辑堆在 app.js。

  • 创建 routes、controllers、services、middlewares、utils 目录
  • 实现任务列表、新增、详情接口
  • 封装 success 和 error 响应格式
  • 添加全局错误处理中间件
当天产出一个具备基础分层和统一响应的任务 API。
Day 3

参数校验与前后端联调

让后端在入口处拒绝错误数据,并返回前端能展示的错误信息。

  • 使用 Zod 或 Joi 校验创建任务请求体
  • 处理 query 分页参数和非法参数
  • 配置 CORS 允许本地前端访问
  • 写一个简单前端页面调用任务列表和新增接口
当天产出一个能和前端页面联调的任务 API。
Day 4

Prisma 与数据库持久化

把内存数据换成数据库,理解 schema、migration 和 client 的关系。

  • 配置 DATABASE_URL 并初始化 Prisma
  • 定义 Task 模型并执行 migration
  • 用 Prisma Client 改写任务 CRUD
  • 观察数据库字段和接口响应之间的映射
当天产出任务数据可以保存到 MySQL、PostgreSQL 或 SQLite。
Day 5

日志、测试和 NestJS 认知

补齐真实开发里会反复遇到的工程能力,并知道何时考虑 NestJS。

  • 为每个请求记录 method、url、status、duration、requestId
  • 用 Vitest、Jest 或 Supertest 写 2-3 个接口测试
  • 让 AI Review Express 项目的分层和错误处理
  • 阅读 NestJS Module、Controller、Provider 与 Express 分层的对应关系
当天产出一份 Express 项目工程质量检查清单。

知识点解释

Node.js 是前端转后端最快的主线。Express 更适合理解本质,NestJS 更接近企业级结构。

Express 路由

根据请求路径和方法,把请求分发到对应处理函数。

前端类比:类似 Vue Router 或 React Router,只是匹配的是接口路径。

中间件

在请求进入具体接口前处理通用逻辑,比如跨域、日志、鉴权、错误处理。

前端类比:类似 axios 拦截器和路由守卫。

Prisma

用类型化方式操作数据库,减少手写 SQL 的重复代码。

前端类比:类似把数据库操作封装成类型安全的 api client。

参数校验

在 Controller 或中间件层验证请求数据,避免错误数据进入业务逻辑和数据库。

前端类比:类似表单提交前的规则校验,但后端必须再次校验。

统一异常处理

集中处理业务错误和系统错误,保证前端收到稳定的错误响应。

前端类比:类似 axios response interceptor 统一处理错误。

接口测试

用自动化方式请求接口并断言状态码和响应内容,防止改代码后破坏已有行为。

前端类比:类似前端组件测试或 E2E 测试,只是目标是 API。
常见坑点
  • 不要把所有逻辑都写在路由文件里
  • 不要把数据库密码写死在代码里
  • 不要忽略 async/await 错误处理
  • CORS 只解决浏览器跨域,不解决服务本身不可访问
  • 前端做了校验不代表后端可以不校验
  • Prisma migration 影响数据库结构,执行前要确认目标环境
  • 不要用 console.log 代替结构化日志和错误上下文

AI 协作提示词

生成 Express 项目

请使用 Node.js + Express + Prisma + MySQL 写一个任务清单后端 API。要求使用 routes、controllers、services、prisma 分层,支持任务新增、列表、详情、更新、删除,使用统一响应格式和统一错误处理中间件,使用 .env 管理数据库连接。请给出项目目录结构、安装命令、启动命令和接口测试示例。我是前端开发,请解释每个目录的职责。

新增接口前先给方案

我要在现有 Express 项目中新增【功能名称】接口。请先输出实现方案,不要直接写代码。请说明要新增或修改哪些文件、接口路径、请求参数、响应格式、数据库是否需要变更、可能的错误情况。

Express 工程质量 Review

请 Review 下面的 Express 项目结构和关键代码。请重点检查路由是否过厚、Service 是否清晰、参数校验是否完整、异步错误是否会漏掉、日志是否足够排查问题、Prisma 使用是否有潜在 N+1 或事务问题、接口测试是否覆盖核心场景。

验收标准

  • 能启动 Express 服务并访问接口
  • 能知道 routes、controllers、services 分别放什么
  • 能让前端页面请求本地后端
  • 能添加参数校验、统一错误处理和基础日志
  • 能使用 Prisma 完成最小 CRUD
  • 能要求 AI 按现有项目结构新增接口

推荐资源

进度数据