koa-advanced-patterns
1
总安装量
1
周安装量
#48117
全站排名
安装命令
npx skills add https://github.com/ecelayes/roots-skills --skill koa-advanced-patterns
Agent 安装分布
opencode
1
antigravity
1
gemini-cli
1
Skill 文档
Koa.js Professional Standards
Middleware Architecture
- The Async Promise Chain: ALWAYS declare middleware as
async (ctx, next) => { ... }. - Await Next: You MUST
await next()exactly once in every middleware. - Execution Order: Code before
await next()handles the Request; code after handles the Response.
Reliability & Ops
- Graceful Shutdown: Do not kill the server instantly. Listen for system signals (
SIGTERM,SIGINT).- Pattern: Stop accepting new requests -> Close database connections -> Exit process.
- Example:
server.close(() => db.disconnect()).
- Health Checks: Always implement a
/healthendpoint for load balancers (return 200 OK if DB is connected).
Context (ctx) Mastery
- State Management: Use
ctx.stateto pass data between middleware (e.g.,ctx.state.user). NEVER pollute the global namespace. - Request Data: Access via
ctx.request.body,ctx.query, orctx.params. - Response Construction: Explicitly set
ctx.statusbefore settingctx.body.
Security Best Practices
- Error Handling: Implement a top-level
app.on('error', ...)listener and a generic try/catch middleware. Never crash the process on a request error. - Headers: Use
koa-helmetfor standard security headers. - Cookies: Always sign cookies using
ctx.cookies.set(name, val, { signed: true })and a secureapp.keys.
Routing
- Router Organization: Use
koa-router(or@koa/router). - Prefixing: Group routes by domain (e.g.,
const usersRouter = new Router({ prefix: '/users' })).