Skip to main content

nodejs-patterns

Async control flow, error handling, module design, streams, and production hardening

Datos de origen

Repositorio
cosmicstack-labs/mercury-agent-skills
Última actividad en el origen
10 de mayo de 2026 a las 06:29
Idioma detectado de SKILL.md
inglés
Estrellas
482
Forks
65

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
nodejs-patterns
description
Async control flow, error handling, module design, streams, and production hardening
metadata
{"author":"cosmicstack-labs","version":"1.0.0","category":"backend","tags":["nodejs","backend","javascript","async","server"]}
# Node.js Patterns Production-grade Node.js backend patterns. ## Async Patterns ### Prefer Async/Await ```javascript // Good async function getUser(id) { const user = await db.findUser(id); return user; } // Avoid raw callbacks or.then() chains ``` ### Parallel Execution ```javascript // 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 ```javascript 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 ```javascript 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)
Ver en GitHub