--- description: Node.js and Express.js best practices for backend development globs: **/*.js, **/*.ts, src/**/*.ts --- # Node.js and Express.js Best Practices ## Project Structure - Use proper directory structure - Implement proper module organization - Use proper middleware organization - Keep routes organized by domain - Implement proper error handling - Use proper configuration management ## Express Setup - Use proper middleware setup - Implement proper routing - Use proper error handling - Configure proper security middleware - Implement proper validation - Use proper static file serving ## API Design - Use proper REST principles - Implement proper versioning - Use proper request validation - Handle errors properly - Implement proper response formats - Document APIs properly ## Database Integration - Use proper ORM/ODM - Implement proper migrations - Use proper connection pooling - Implement proper transactions - Use proper query optimization - Handle database errors properly ## Authentication - Implement proper JWT handling - Use proper password hashing - Implement proper session management - Use proper OAuth integration - Implement proper role-based access - Handle auth errors properly ## Security - Use proper CORS setup - Implement proper rate limiting - Use proper security headers - Implement proper input validation - Use proper encryption - Handle security vulnerabilities ## Performance - Use proper caching - Implement proper async operations - Use proper connection pooling - Implement proper logging - Use proper monitoring - Handle high traffic properly ## Testing - Write proper unit tests - Implement proper integration tests - Use proper test runners - Implement proper mocking - Test error scenarios - Use proper test coverage ## Deployment - Use proper Docker setup - Implement proper CI/CD - Use proper environment variables - Configure proper logging - Implement proper monitoring - Handle deployment errors ## Best Practices - Follow Node.js best practices - Use proper async/await - Implement proper error handling - Use proper logging - Handle process signals properly - Document code properly