用途
Express 技能用于为使用 Express.js 构建 Node.js API 提供专家级辅助。当需要构建 REST API、实现中间件管线、优雅处理错误、添加认证/授权或设置 API 文档时,可以调用该技能。
主要能力
- 使用中间件配置 Express 应用
- 实现 RESTful 路由模式
- 使用自定义中间件处理错误
- 应用安全最佳实践
- 设置校验与解析
- 配置生产部署
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| routePath | string | 是 | 路由路径前缀 |
| methods | array | 是 | HTTP 方法 |
| middleware | array | 否 | 要应用的中间件 |
| validation | boolean | 否 | 是否添加校验 |
模式示例
应用初始化
使用 helmet 设置安全头,配置 cors(来源取自环境变量,开启 credentials),使用 express-rate-limit 做限流(窗口 15 分钟、上限 100 次,启用 standardHeaders、关闭 legacyHeaders),使用 express.json 与 express.urlencoded 解析请求体(limit 为 10kb),启用 compression 压缩,使用 morgan 记录日志(生产环境用 combined,否则用 dev)。挂载 auth 与 users 路由,提供返回状态与时间戳的 /health 健康检查,最后挂载 notFoundHandler 与 errorHandler。
路由器与控制器
路由器从 Router 创建实例并绑定控制器,为各路由配置 authenticate、authorize('admin')、validate(createUserSchema) 等中间件。控制器类通过私有 service 实例调用业务逻辑,各方法为异步函数,捕获错误后调用 next(error),并根据情况返回 JSON 或 204 状态。
中间件
- 认证:从 Authorization 头取出 Bearer token,缺失时返回 401;用 jsonwebtoken 校验,将解码后的用户信息挂到 req.user,失败返回 401。
- 授权:authorize(...roles) 返回中间件,检查 req.user 及其 role 是否在允许列表,否则返回 403。
- 校验:validate(schema) 使用 Zod 的 schema.parse 校验 req.body,捕获 ZodError 后返回 400 及错误详情,否则交由 next 处理。
- 错误处理:自定义 AppError 携带 statusCode、message、isOperational;notFoundHandler 返回 404;errorHandler 打印错误,AppError 返回对应状态码与消息,其他错误在生产环境返回“Internal server error”,否则返回 err.message。
异步处理器包装器
asyncHandler 接收异步请求处理函数,返回将 Promise 拒绝传递给 next 的 RequestHandler,用于避免在每个路由中手动捕获异步错误。
最佳实践
- 使用中间件处理横切关注点
- 实现恰当的错误处理
- 校验所有输入
- 应用安全中间件(helmet、cors、限流)
- 使用控制器与服务分层组织代码
目标流程
- nodejs-api-development
- rest-api-development
- mern-stack-development
- backend-architecture
适用场景
适合构建 Node.js REST API、设计中间件管线、处理错误、添加认证授权、设置 API 文档等后端开发场景。
限制
资料未提供该技能的具体安装方式、收费与价格信息、支持的平台范围、性能效果指标及完整使用步骤。