nodejs-patterns

GitHub

提供Node.js后端生产级最佳实践,涵盖异步控制流、错误处理、模块化设计及生产环境加固策略。

categories/backend/nodejs-patterns/SKILL.md cosmicstack-labs/mercury-agent-skills

触发场景

询问Node.js开发规范 需要优化异步代码性能 配置Express错误中间件 部署Node.js应用

安装

npx skills add cosmicstack-labs/mercury-agent-skills --skill nodejs-patterns -g -y
更多选项

非标准路径

npx skills add https://github.com/cosmicstack-labs/mercury-agent-skills/tree/main/categories/backend/nodejs-patterns -g -y

不安装直接使用

npx skills use cosmicstack-labs/mercury-agent-skills@nodejs-patterns

指定 Agent (Claude Code)

npx skills add cosmicstack-labs/mercury-agent-skills --skill nodejs-patterns -a claude-code -g -y

安装 repo 全部 skill

npx skills add cosmicstack-labs/mercury-agent-skills --all -g -y

预览 repo 内 skill

npx skills add cosmicstack-labs/mercury-agent-skills --list

SKILL.md

Frontmatter
{
    "name": "nodejs-patterns",
    "metadata": {
        "tags": [
            "nodejs",
            "backend",
            "javascript",
            "async",
            "server"
        ],
        "author": "cosmicstack-labs",
        "version": "1.0.0",
        "category": "backend"
    },
    "description": "Async control flow, error handling, module design, streams, and production hardening"
}

Node.js Patterns

Production-grade Node.js backend patterns.

Async Patterns

Prefer Async/Await

// Good
async function getUser(id) {
  const user = await db.findUser(id);
  return user;
}

// Avoid raw callbacks or.then() chains

Parallel Execution

// Sequential (slow)
const user = await fetchUser(id);
const posts = await fetchPosts(id);

// Parallel (fast)
const [user, posts] = await Promise.all([
  fetchUser(id),
  fetchPosts(id),
]);

Error Handling

Global Handler

process.on('uncaughtException', (err) => {
  console.error('Uncaught:', err);
  // Graceful shutdown
  server.close(() => process.exit(1));
});

process.on('unhandledRejection', (reason) => {
  console.error('Unhandled Rejection:', reason);
});

Express Error Middleware

app.use((err, req, res, next) => {
  const status = err.status || 500;
  res.status(status).json({
    error: err.message,
    ...(process.env.NODE_ENV === 'development' && { stack: err.stack }),
  });
});

Module Design

  • Single responsibility per module
  • Export a class or factory function, not plain objects
  • Use dependency injection for testability
  • Prefer CommonJS (require) or ESM (import), consistent throughout

Production Hardening

  • Cluster mode for multi-core
  • Process manager (PM2) with auto-restart
  • Health check endpoints
  • Graceful shutdown (SIGTERM handler)
  • Memory limit monitoring
  • Structured logging (pino/winston)

版本历史

  • 38e2523 当前 2026-07-05 19:36

同 Skill 集合

categories/ai-ml/agent-audit-logging/SKILL.md
categories/ai-ml/agent-handoff-protocols/SKILL.md
categories/ai-ml/agent-health-monitoring/SKILL.md
categories/ai-ml/agent-task-delegation/SKILL.md
categories/ai-ml/ai-agent-design/SKILL.md
categories/ai-ml/error-recovery-retry/SKILL.md
categories/ai-ml/memory-management/SKILL.md
categories/ai-ml/prompt-engineering/SKILL.md
categories/ai-ml/prompt-version-management/SKILL.md
categories/ai-ml/routerbase-model-gateway/SKILL.md
categories/ai-ml/token-budget-tracking/SKILL.md
categories/automation/daily-briefing/SKILL.md
categories/automation/screenshot/SKILL.md
categories/automation/shell-scripting/SKILL.md
categories/automation/twitter-account-manager/SKILL.md
categories/automation/workflow-automation/SKILL.md
categories/automation/x-twitter-automation/SKILL.md
categories/backend/api-design/SKILL.md
categories/backend/authentication-authorization/SKILL.md
categories/backend/caching-strategies/SKILL.md
categories/backend/database-design/SKILL.md
categories/backend/message-queues/SKILL.md
categories/backend/microservices/SKILL.md
categories/backend/python-patterns/SKILL.md
categories/backend/serverless-patterns/SKILL.md
categories/business/event-staffing-compliance/SKILL.md
categories/business/event-staffing-ordering/SKILL.md
categories/business/negotiation/SKILL.md
categories/business/startup-strategy/SKILL.md
categories/career/career-planning/SKILL.md
categories/career/interview-prep/SKILL.md
categories/career/linkedin-optimization/SKILL.md
categories/career/resume-writing/SKILL.md
categories/career/salary-negotiation/SKILL.md
categories/creative-personal-development/content-repurposer/SKILL.md
categories/creative-personal-development/daily-standup-journal/SKILL.md
categories/creative-personal-development/decision-matrix/SKILL.md
categories/creative-personal-development/idea-validator/SKILL.md
categories/creative-personal-development/meeting-note-summarizer/SKILL.md
categories/creative-personal-development/personal-branding-statement/SKILL.md
categories/creative-personal-development/storytelling-advisor/SKILL.md
categories/creative-personal-development/time-blocking-scheduler/SKILL.md
categories/data/data-pipeline/SKILL.md
categories/design/accessibility/SKILL.md
categories/design/ui-design-system/SKILL.md
categories/development/api-documentation/SKILL.md
categories/development/architecture-decision-records/SKILL.md
categories/development/clean-code/SKILL.md
categories/development/code-review/SKILL.md

元信息

文件数
0
版本
4c57cf2
Hash
28e149ed
收录时间
2026-07-05 19:36

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-03 22:18
浙ICP备14020137号-1 $访客地图$