Let's cut to the chase, if you're planning on building a production level backend NodeJS application, chances are you'll need all or most of these packages:
- Express or NestJS for backend API framework
- Node-convict and dotenv for configuration management
- Joi for API request validations or data validations
- Sequelize ORM for MySQL/Postgres databases, or Mongoose for MongoDb
- RabbitMQ for publishing/subscribing to message queues, or Kafka for streams and message brokers
- Ioredis / node-redis for caching with Redis
- Axios for handling third party API integrations. Need a good command of json API calls and response handling
- Bull queue or Faktory for delayed/background jobs
- Socket.io for real time peer to peer connections
- Jest/Supertest for unit testing or integration testing and coverage reports
- Winston / Morgan for logging (use morgan-body if you want to log request / response, useful for debugging in staging and dev environments)
- Passport.js for authentication, or any custom authentication service using cookie-parser, jsonwebtoken or oath
- Node-cron for cron jobs
- Multer for handling file uploads
- Swagger for OpenAPI documentation (swagger-ui-express or @nest/swagger)
- Lodash for utilities
- Luxon for date time manipulation, especially when dealing with timezones
- ESLint + TSLint + Prettier for static code analysis and formatting
- Husky for Git hooks
- Docker for containerisation (Not NodeJS specific, but it helps)
Feel free to comment anything that you also work with on a daily basis!
Top comments (0)