用途:该技能帮助智能体搭建、讲解或改造 nodejs-express-mongodb-backend-pattern 模板,这是一个内置可观测性、安全与韧性能力的 Node.js REST API 样板。适用于用户想用 Node.js 与 Express 创建新 REST API、需要生产级或可观测模板、提到 MongoDB/Mongoose、Redis、Sentry、限流或 JWT 认证,或想克隆、理解该仓库结构时。不适用于前端或全栈框架、明确要求 PostgreSQL/MySQL 等其它数据库,或需要 serverless/lambda 架构的场景。
主要能力:技术栈为 Express 5、TypeScript、Mongoose、Redis(ioredis)、Sentry、Helmet、CORS。安全方面包含防 NoSQL 注入、拒绝输入中的 HTML、Helmet 与 CORS;认证采用 JWT + bcrypt,密码保存时哈希且不在 JSON 中返回;韧性方面支持按路由限流、过载检测(toobusy)、结构化 HttpError 及将意外错误上报 Sentry。
使用方式:克隆并安装:git clone https://github.com/laskar-ksatria/building-observable-nodejs-api.git,cd building-observable-nodejs-api,npm install。在项目根目录创建 .env,必需变量为 PORT、MONGODB_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,含注册、登录、获取当前用户与健康检查。
约定:文件名用 kebab-case,模型、控制器、路由、中间件、服务分别放在对应目录;响应统一为成功 { success: true, data } 或错误 { success: false, error };中间件顺序在 app.ts 中固定,错误处理必须最后。新增资源需依次定义类型、模型、控制器、路由并挂载。
限制:资料未提供收费、价格、平台支持范围或实际运行效果等信息;Redis 为可选缓存,未配置时应用无缓存运行。