🌱 阶段 1 · Node.js 核心
Day 10
🏆 里程碑:迷你项目 Review
📋 今日目标
- 回顾和重构 Day 1-9 的所有代码
- 完善项目结构和代码质量
- 编写完整的 README 和 API 文档
- 将项目提交到 GitHub
- 自我评估:确认阶段一前半部分的核心知识掌握情况
📖 今日任务
1. 项目整理与重构
将 Day 8-9 构建的 TODO API 整理为一个完整的项目:
mini-todo-api/
├── README.md
├── package.json
├── src/
│ ├── index.js # 入口文件
│ ├── router.js # 路由器
│ ├── middleware.js # 中间件引擎
│ ├── routes/
│ │ └── todos.js # TODO 路由定义
│ ├── middlewares/
│ │ ├── logger.js
│ │ ├── cors.js
│ │ ├── json-parser.js
│ │ ├── error-handler.js
│ │ └── rate-limiter.js
│ ├── errors/
│ │ └── app-error.js # 自定义错误类
│ └── utils/
│ └── response.js # 响应工具函数
└── .gitignore
2. 代码质量检查清单
对你的代码进行以下检查:
- 命名规范:变量、函数名是否清晰表达含义?
- 错误处理:所有可能出错的地方都有 try/catch 吗?
- 输入验证:所有用户输入都进行了验证吗?
- 注释:关键逻辑是否有注释?
- 一致性:代码风格是否统一?
- 无硬编码:端口号、限制值等是否可配置?
- 无 console.log 调试代码:清理调试代码了吗?
3. 编写 README
一个好的 README 应包含:
# Mini TODO API
一个用原生 Node.js(零依赖)构建的 RESTful TODO API。
## 功能特性
- ✅ 完整的 CRUD 操作
- ✅ 自定义路由器(支持动态参数)
- ✅ 中间件体系(Logger/CORS/JSON Parser/Error Handler)
- ✅ 请求验证
- ✅ 分页、过滤、排序
- ✅ Rate Limiting
## 快速开始
\```bash
node src/index.js
\```
## API 文档
### 获取所有 TODO
\```
GET /api/todos?page=1&limit=10&completed=true&sort=priority&order=desc
\```
### 创建 TODO
\```
POST /api/todos
Content-Type: application/json
{
"title": "学习 Node.js",
"priority": 3
}
\```
(... 其他接口文档 ...)
## 架构说明
(简要描述你的中间件模式和路由匹配原理)
## 学到了什么
(总结你在这个过程中的收获)
4. Git 提交与推送
cd mini-todo-api
git init
echo "node_modules/" > .gitignore
git add .
git commit -m "feat: 用原生 Node.js 实现 RESTful TODO API"
5. 知识回顾测验
用自己的话回答以下问题(写在笔记中):
Node.js 基础:
- Node.js 的事件循环有哪六个阶段?
process.nextTick、Promise.then、setTimeout、setImmediate的执行优先级是什么?- 为什么 Node.js 是单线程但能处理高并发?
Buffer和Stream分别解决什么问题?
HTTP 与 API: 5. 401 和 403 状态码的区别是什么? 6. HTTP 的幂等性是什么意思?哪些方法是幂等的? 7. CORS 预检请求(OPTIONS)在什么情况下触发?
代码设计:
8. 中间件模式的核心是什么?next() 的作用是什么?
9. CommonJS 和 ESModule 的主要区别是什么?
10. 为什么服务端必须做输入验证?前端验证不够吗?
✅ 今日产出
- 完成项目重构,代码结构清晰
- 编写完整的 README 和 API 文档
- 通过代码质量检查清单
- 提交代码到 GitHub
- 完成 10 道回顾测验题
- 写一篇 Day 1-10 的学习总结
🎉 恭喜!
你已经完成了第一个里程碑!此时你应该能够:
- ✅ 用原生 Node.js 从零构建 HTTP 服务
- ✅ 理解路由匹配和中间件的底层原理
- ✅ 独立设计和实现 RESTful API
- ✅ 正确处理错误和验证输入
接下来的 Day 11-15 将补充 TypeScript、进程管理和调试技巧,为进入框架阶段做准备。
本文内容来自 源仓库 day-10/README.md