NestJS is a modern Node.js-based framework that allows you to create web applications easily and quickly. Its architecture is based on the popular Angular framework.
Table of contents
NestJS is being described as the successor to Express.JS, and the speed at which the community around the framework is growing may prove the truth of these predictions. Interestingly, the NestJS project is being developed by a Pole - Kamil Mysliwiec. The entire application is written in TypeScript and based on the ecosystem of solutions popular in NodeJS.
NestJS uses a decorator mechanism which makes it unique among other such frameworks. It borrows the best from Angular and injects data into individual classes. Note that it is a kind of overlay on other popular solutions. It is possible to configure it using ExpressJS, as well as Fastify. It was created because of a fairly common problem in ExpressJS, namely the lack of standardization. Code written in ExpressJS was difficult to maintain and each person wrote it differently. I often hear comparisons about NestJS and DjangoRest and they seem quite correct to me. Both DjangoRest does not work without the base that is Django for it, so this one does not work without ExpressJS.
The biggest focus that has been placed on NestJS is its philosophy. NestJS is supposed to solve the problem of lack of application architecture and standardization. Each application must consist of the following elements. These will be Modules, Providers and Controllers, respectively
Advantages of a NestJS-type solution
- NestJS by nature of being based on NodeJS is easily scalable and popular for server-side solutions. Written in TypeScript, it gives full type safety and gives the possibility to use it in other applications written in this programming language
- Code written in NestJS is well standardized and other developers with experience in this framework will be able to find their way around the project.
- Great and accurate documentation
- Large and active community on both StackOverflow and Github
- Supports many database solutions such as GraphQL, SQL ORM, Mongoose and many others
- Easy Unit Tests of the application