用途:该技能帮助智能体脚手架、讲解或改造 nodejs-express-backend-pattern 模板,适用于用户想用 Node.js 与 Express 创建带可观测性、安全与弹性能力的 REST API 后端时。
主要能力:技术栈为 Express 5、TypeScript、Mongoose(MongoDB)、Redis(ioredis)、Sentry、Helmet、CORS。安全方面包含防 NoSQL 注入、拒绝输入中的 HTML、Helmet 与 CORS;认证采用 JWT 加 bcrypt,密码保存时哈希且不在 JSON 中返回;弹性方面支持按路由限流、过载检测(toobusy,返回 HTTP 529)以及结构化 HttpError 与未预期错误上报 Sentry。目录结构为 src/ 下 config、controllers、errors、lib、middlewares、models、routes、services、types,入口在 server.ts 并初始化 Sentry。
使用方式:克隆并安装:git clone https://github.com/laskar-ksatria/building-observable-nodejs-api.git,cd building-observable-nodejs-api,npm install。在项目根创建 .env,必需变量 PORT、MONGGO_URI、PRIVATE_KEY、TOKEN_EXPIRED,可选 SENTRY_DSN、REDIS_HOST、REDIS_PORT、REDIS_PASSWORD。生成 JWT 密钥可用 node -e "console.log(require('crypto').randomBytes(64).toString('base64'))" 或 openssl rand -hex 64。开发运行 npm run dev,构建 npm run build 后 npm start。API 基础路径 /api,含 POST /api/user/register、POST /api/user/login、GET /api/user(需 Authorization: Bearer <token>)与 GET / 健康检查。
约定:文件名用 kebab-case;响应统一为成功 { "success": true, "data": {...} } 或错误 { "success": false, "error": { "error_id": 0, "message": "...", "errors": [] } };app.ts 中间件顺序为 helmet、cors、express.json、express.urlencoded、securityMiddleware、toobusy、Cache-Control、路由、健康检查、错误处理(必须最后)。新增资源按 types、model、controller、route、挂载顺序进行。
限制:不适用于前端或全栈框架、明确要求 PostgreSQL/MySQL 且不用 Mongoose 的场景,以及无服务器/Lambda 架构。资料未提供收费、价格与效果数据。