Communitygithub.com

wshobson/nodejs-backend-patterns

Cria serviços backend Node.js prontos para produção com Express/Fastify, implementando padrões de middleware, tratamento de erros, autenticação, integração com banco de dados e melhores práticas de design de API.

O que é nodejs-backend-patterns?

Este skill fornece um guia completo para construir serviços backend Node.js prontos para produção, utilizando frameworks como Express e Fastify. Ele abrange desde a estruturação do projeto e configuração de middleware até implementações avançadas de tratamento de erros, autenticação, integração com bancos de dados (SQL/NoSQL) e design de APIs RESTful ou GraphQL. É especialmente útil para desenvolvedores que desejam criar servidores Node.js, APIs REST, backends GraphQL ou arquiteturas de microsserviços com boas práticas de mercado. O skill é compatível com agentes de IA como Claude Code, Cursor e Codex, e organiza o conteúdo em seções claras, com exemplos de código e explicações detalhadas, garantindo que o usuário possa aplicar os padrões diretamente em seus projetos.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wshobson/agents/tree/main/skills/nodejs-backend-patterns

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que nodejs-backend-patterns faz?

Construa serviços backend Node.js prontos para produção com Express/Fastify, implementando padrões de middleware, tratamento de erros, autenticação, integração com banco de dados e melhores práticas de design de API. Use ao criar servidores Node.js, APIs REST, backends GraphQL ou arquiteturas de microsserviços.

Visão Geral

Este skill fornece um conjunto de padrões e melhores práticas para o desenvolvimento de backend em Node.js, cobrindo:

  • Estrutura de Projeto: Organização modular e escalável de código.
  • Middleware: Criação e composição de middlewares para Express e Fastify.
  • Tratamento de Erros: Padrões centralizados e consistentes para lidar com exceções.
  • Autenticação e Autorização: Implementação com JWT, OAuth2 e sessões.
  • Integração com Banco de Dados: Exemplos com PostgreSQL (via Prisma/TypeORM) e MongoDB (via Mongoose).
  • Design de API: RESTful e GraphQL, com validação de entrada e versionamento.
  • Microsserviços: Comunicação entre serviços, health checks e logging.

Pré-requisitos

  • Node.js 18+ instalado
  • Framework escolhido: Express ou Fastify
  • Gerenciador de pacotes: npm, yarn ou pnpm
  • Conhecimento básico de JavaScript/TypeScript

Estrutura Recomendada

meu-projeto/
├── src/
│   ├── config/          # Configurações (banco, auth, etc.)
│   ├── controllers/      # Lógica de controle das rotas
│   ├── middleware/        # Middlewares customizados
│   ├── models/           # Modelos de dados (ORM/ODM)
│   ├── routes/           # Definição de rotas
│   ├── services/         # Lógica de negócio
│   ├── utils/            # Funções utilitárias
│   └── app.js            # Ponto de entrada
├── tests/
├── .env.example
├── .gitignore
└── package.json

Exemplo Rápido com Express

const express = require('express');
const app = express();

// Middleware global
app.use(express.json());

// Rota simples
app.get('/api/health', (req, res) => {
  res.json({ status: 'OK', timestamp: new Date() });
});

// Tratamento de erros centralizado
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({ message: 'Erro interno do servidor' });
});

app.listen(3000, () => console.log('Servidor rodando na porta 3000'));

Exemplo Rápido com Fastify

const fastify = require('fastify')({ logger: true });

fastify.get('/api/health', async (request, reply) => {
  return { status: 'OK', timestamp: new Date() };
});

fastify.setErrorHandler((error, request, reply) => {
  reply.status(500).send({ message: 'Erro interno do servidor' });
});

const start = async () => {
  try {
    await fastify.listen({ port: 3000 });
    console.log('Servidor rodando na porta 3000');
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};
start();

Integração com Banco de Dados

PostgreSQL (Prisma)

  1. Instale o Prisma: npm install @prisma/client
  2. Configure o schema em prisma/schema.prisma
  3. Execute npx prisma migrate dev
  4. Use o cliente no serviço:
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

async function getUsers() {
  return await prisma.user.findMany();
}

MongoDB (Mongoose)

  1. Instale: npm install mongoose
  2. Conecte:
const mongoose = require('mongoose');
mongoose.connect(process.env.MONGODB_URI);

Autenticação com JWT

const jwt = require('jsonwebtoken');

function generateToken(user) {
  return jwt.sign({ id: user.id, role: user.role }, process.env.JWT_SECRET, { expiresIn: '1h' });
}

function authenticate(req, res, next) {
  const token = req.headers.authorization?.split(' ')[1];
  if (!token) return res.status(401).json({ message: 'Token ausente' });
  try {
    const decoded = jwt.verify(token, process.env.JWT_SECRET);
    req.user = decoded;
    next();
  } catch (err) {
    res.status(401).json({ message: 'Token inválido' });
  }
}

Boas Práticas

  • Variáveis de Ambiente: Use .env para configurações sensíveis.
  • Validação: Utilize Joi ou zod para validar entradas.
  • Testes: Escreva testes unitários e de integração (Jest, Mocha).
  • Logging: Implemente logging estruturado (Pino, Winston).
  • Security: Adote helmet, rate limiting e CORS.

Compatibilidade

  • Plataformas: Claude Code, Cursor, Codex e outros agentes de IA.
  • Frameworks: Express 4.x e Fastify 4.x.
  • Bancos de Dados: PostgreSQL, MySQL, MongoDB (exemplos inclusos).

Contribuição

Sinta-se à vontade para contribuir com melhorias, correções ou novos exemplos via pull request.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

wshobson/accessibility-compliance

Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.

wshobson/airflow-dag-patterns

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

wshobson/angular-migration

Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.

wshobson/anti-reversing-techniques

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

wshobson/api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

wshobson/architecture-decision-records

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.

wshobson/architecture-patterns

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use this skill when designing clean architecture for a new microservice, when refactoring a monolith to use bounded contexts, when implementing hexagonal or onion architecture patterns, or when debugging dependency cycles between application layers.

wshobson/async-python-patterns

Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.

wshobson/attack-tree-construction

Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.

wshobson/auth-implementation-patterns

Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing APIs, or debugging security issues.

wshobson/avoid-ai-writing

Audit and rewrite prose so it stops reading as machine-generated. Use this skill when asked to remove AI-isms, clean up AI writing, edit a draft for AI tells, audit a README, changelog, release note, PR description, or blog post for machine-sounding prose, or make text sound less like AI. Supports a detect-only mode, a rewrite mode, and an edit-in-place mode, with optional voice and context profiles.

wshobson/backtesting-frameworks

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

wshobson/bash-defensive-patterns

Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

wshobson/bats-testing-patterns

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

wshobson/bazel-build-optimization

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

wshobson/before-you-build

Pre-build product and feature risk review for founders, product managers, and AI-assisted builders. Use this skill when the user is about to build a landing page, MVP, SaaS product, internal tool, agent workflow, or major feature and needs to check demand, positioning, monetization, retention, trust, distribution, and adoption risk before implementation starts.

wshobson/billing-automation

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

wshobson/binary-analysis-patterns

Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.

wshobson/block-no-verify-hook

Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.

wshobson/brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

Habilidades Relacionadas