# nodejs > Node.js server development patterns including async patterns, error handling, and security best practices. - Author: pRashAnth - Repository: kprsnt2/MyLocalCLI - Version: 20260116012941 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/kprsnt2/MyLocalCLI - Web: https://mule.run/skillshub/@@kprsnt2/MyLocalCLI~nodejs:20260116012941 --- --- name: nodejs description: Node.js server development patterns including async patterns, error handling, and security best practices. globs: ["**/package.json", "**/tsconfig.json", "**/server.js", "**/index.js", "**/app.js"] priority: 90 tags: ["tool"] --- # Node.js Best Practices ## Project Structure - src/ for source code - src/lib/ for utilities - src/types/ for TypeScript types - tests/ for test files - Keep entry point minimal ## Async Patterns - Use async/await everywhere - Handle all promise rejections - Use Promise.all for parallel tasks - Use Promise.allSettled when all must complete - Set timeouts for external calls - Use AbortController for cancellation ## Error Handling - Use centralized error handler - Create custom error classes - Log errors with context (request ID, user) - Return appropriate status codes - Never expose stack traces in production ## Environment - Use dotenv for local config - Validate env variables at startup (envalid) - Use different configs per environment - Never commit secrets - Use secret managers in production ## Security - Validate all input (Zod, Joi) - Use helmet for HTTP headers - Rate limit APIs (express-rate-limit) - Keep dependencies updated (npm audit) - Use npm/yarn lockfiles ## Performance - Use clustering for multi-core - Enable gzip compression - Implement caching (Redis) - Use connection pooling - Profile with clinic.js