一、这个技术是什么?
接口并不只是把一个 URL 接到一个函数。真实服务还要处理参数是否合法、用户是否有权限、数据库是否失败,以及错误如何被记录。
Express 和 Fastify 都能帮助 Node.js 组织 HTTP API,但真正重要的是接口边界和分层设计。
二、没有它之前发生了什么?
所有请求逻辑写在一个回调
↓
参数校验、业务逻辑和数据库代码混在一起
↓
错误格式不统一,难以测试和维护
↓
路由、校验、服务层和错误边界分层
三、核心概念
1. Route
Route 根据 Method 和 Path 找到处理逻辑。路由层不应该承担全部业务规则。
2. Validation
输入必须先经过 Schema 校验,不能相信客户端传来的字段、类型和范围。
3. Service Layer
Service 层表达业务规则,例如创建订单、发布文章或检查权限。
4. Error Boundary
错误处理需要统一状态码、错误结构和日志上下文,避免每个接口各自返回一套格式。
5. Observability
请求 ID、结构化日志、耗时和错误信息帮助开发者排查生产问题。
四、运行流程
五、面试复习
一句话回答
好的 Node.js API 设计会把路由、输入校验、业务服务、数据访问、错误处理和日志分层,保证接口可理解、可测试和可观测。
高频追问
- Express 和 Fastify 如何选择?
- 为什么要做输入校验?
- 错误应该在哪一层处理?
- 如何设计统一错误响应?
容易答错
不要只比较框架性能。生产选型还要考虑生态、插件、团队经验、类型支持、可观测性和迁移成本。
六、项目展示
知识平台后续可以增加 Route Handler API,用于搜索、学习进度和 Hermes Agent 提交建议。接口层应与 Markdown 读取层分离,避免页面组件直接操作文件系统。