React with Express and Angular with NestJS
For Angular, the equivalent on the server-side is NestJS, whose creator was strongly inspired by the solutions from colleagues at Google while working on his project.
What Angular and Nest have in common and what also distinguishes them from the previous set is:
- Use of TypeScript as the main language
- Extensive use of decorators
- A module-based dependency injection system (with importing, exporting, and defining providers)
- Set of officially supported additional libraries
- Main library with lots of functionalities ready to use
Each of these approaches has its pros and cons. The biggest mistake is mixing different philosophies in one technology set – while the elements of the MERN set fit together quite well, the same cannot be said for MEAN.
That’s why I want to propose a much better alternative: the NAN.
NAN is a combination of three technologies: NestJS, Angular, and Nx. The natural combination of NestJS and Angular was described above. Nx is a toolkit to help while working with monorepo, but it is also very useful for developing single, complex applications. For a full-stack developer, the ability to share code, tools, and a repository between backend and frontend is invaluable – Nx offers us that (and much more).
What’s more, in nrwl also the dependencies described above were noticed and the ability to create projects in Angular-Nest or React-Express set was added.
Relational databases have not disappeared
The last major difference between NAN and MEAN is the omission of a database. Including one in the new suite would be an unnecessary limitation. A good backend or fullstack developer should be familiar with both NoSQL and traditional (relational) databases. More importantly, he/she should be able to consciously choose the right database for the project requirements and his/her technology set should not be the discriminator here.
What I mean here is that any Node.js developer is certainly aware that NoSQL is not suitable for certain types of applicationsand should warn the client that another technology might work better here. Even if NoSQL is the only database technology you know of, its use in the project should be sensibly supported.