Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    nguyenthienthanh

    nodejs-expert

    nguyenthienthanh/nodejs-expert
    Coding
    3
    1 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Node.js backend expert. PROACTIVELY use when working with Express, NestJS, Fastify, Node.js APIs. Triggers: nodejs, express, nestjs, fastify, api route, backend

    SKILL.md

    AI-consumed reference. Optimized for Claude to read during execution. Human-readable explanation: see docs/architecture/HIERARCHICAL_PLANNING.md or docs/getting-started/ depending on topic.

    Node.js Expert — Gotchas & Decisions

    Use Context7 for Express/NestJS/Fastify docs.

    Key Decisions

    decisions[4]{choice,use_when}:
      Express vs NestJS vs Fastify,"Express: simple APIs. NestJS: enterprise/DI/decorators. Fastify: high perf"
      Prisma vs TypeORM vs Drizzle,"Prisma: best DX/types. TypeORM: Active Record pattern. Drizzle: SQL-like + lightweight"
      Zod vs Joi vs class-validator,"Zod: TS-first inference. Joi: runtime schemas. class-validator: NestJS decorators"
      JWT vs session,"JWT: stateless/microservices. Session: monolith/server-rendered"
    

    Gotchas

    • forEach + async: does NOT await. Use for...of or Promise.all(items.map(async ...))
    • Express error handler: MUST have 4 params (err, req, res, next) — even if unused, or Express ignores it
    • Unhandled promise rejection crashes Node 15+ — always catch or use process.on('unhandledRejection')
    • asyncHandler wrapper: wrap Express route handlers to catch async errors → next(err)
    • req.body is undefined without express.json() middleware — common setup miss
    • process.env.PORT is string — parse with parseInt() or Number() before comparison
    • NestJS: @Injectable() with @Module({ providers: [...] }) — forgetting module registration = runtime error
    • Stream backpressure: always handle drain event on writable streams for large data
    • __dirname not available in ESM — use import.meta.dirname (Node 21+) or fileURLToPath(import.meta.url)
    Recommended Servers
    Supabase
    Supabase
    InstantDB
    InstantDB
    Repository
    nguyenthienthanh/aura-frog
    Files