Node.js has an event-driven architecture capable of asynchronous I/O.
These design choices aim to optimize throughput and scalability in web applications with many input/output operations, as well as for real-time Web applications.
When working with Node.js you will probably use the npm package manager to install and manage your dependencies, or you will use the yarn package manager, which also uses the npm registry. It is also possible link a package to a github repository and use it as a dependency, but this is not recommended.
When using Node.js you will probably use a bundler to bundle your code and to manage your dependencies. Why is this a good idea? Node.js comes with a lot of modules and a lot of them won't be used in your application. A bundler will help you to manage your dependencies and to avoid loading the unused ones. This is a critical step in the development process because you will always try to ship a little code as possible, to reduce the size of your application and therefore the time it takes to load it. So here is a list of the most popular bundlers:
- Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- With a myriad of HTTP utility methods and middleware at your disposal, creating a robust API is quick and easy.
- Express provides a thin layer of fundamental web application features, without obscuring Node.js features that you know and love.
- Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
- By leveraging async functions, Koa allows you to ditch callbacks and greatly increase error-handling.
- Koa does not bundle any middleware within its core, and it provides an elegant suite of methods that make writing servers fast and enjoyable.
- Socket.io is a realtime application framework (RTF) that enables real-time bidirectional event-based communication.
- Prettier is an opinionated code formatter.
- It will format your code to be as close to the style guide as possible, without breaking your code.
- It will also add semicolons to your code, if you don't have them.
- It is a Node.js utility that can automatically maintain your code quality.
- It can be used as a formatter for your editor.
- Hapi.js is designed to be a simple and secure, yet powerful, way to build modern web applications and services.
- Originally developed to handle Walmart’s Black Friday scale, hapi continues to be the proven choice for enterprise-grade backend needs.
- It is a very popular library for date manipulation.
and many more coming soon...
You can find more great package on Awesome Node.js