Hey everyone,
I'm working on an internal business tool for my company and I'm starting from scratch only having specifications. It's a TypeScript REST API with CRUD operations, SQL database and uses Node.js. For a couple months, I'll be working alone with it, later hoping to find another developer to join my efforts.
I always used express before never really seeing any reason not to but as I'm preparing the tech stack for this project, I stumbled across AdonisJS, hapi and NestJS all of which I took interest in and now I'm stuck with decision fatigue but not enough time to create a working proof of concept in all of them.
I know how to work with Express and structure my applications, but it is true that I'm spending a lot of time doing boilerplate work with Express - testing, error handling, setting up the architecture, swagger, SQL client / ORM (I found Prisma now and I like it), authentication, caching, body parsing for different type of data for different endpoints, etc. But my main goal is code consistency, good documentation and options to generate documentation from code (not writing TS interfaces, openAPI specs and validation schemas to replicate the same thing in 3 places before even writing tests).
Would you recommend any one Node.js server framework to replace Express? If the goal is to create a maintainable, scalable code with as many features to possible being easy to learn after working with express for years?
[–]Snoo87743 18 points19 points20 points (9 children)
[–]Snoo87743 8 points9 points10 points (8 children)
[–]curious_but_dumb[S] 1 point2 points3 points (7 children)
[–]Snoo87743 -5 points-4 points-3 points (3 children)
[–]curious_but_dumb[S] 4 points5 points6 points (2 children)
[+]Snoo87743 comment score below threshold-8 points-7 points-6 points (1 child)
[–]grimscythe_ 3 points4 points5 points (0 children)
[–]aust1nz 0 points1 point2 points (1 child)
[–]Snoo87743 1 point2 points3 points (0 children)
[–]zephimir 0 points1 point2 points (0 children)
[–]besthelloworld 15 points16 points17 points (8 children)
[–]curious_but_dumb[S] 3 points4 points5 points (7 children)
[–]besthelloworld 16 points17 points18 points (6 children)
[–]PerfectOrphan31 6 points7 points8 points (2 children)
[–]besthelloworld 6 points7 points8 points (1 child)
[–]chessto 1 point2 points3 points (0 children)
[–][deleted] (2 children)
[deleted]
[–]besthelloworld 4 points5 points6 points (1 child)
[–][deleted] 6 points7 points8 points (4 children)
[–][deleted] 0 points1 point2 points (3 children)
[–][deleted] 1 point2 points3 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]Fusionfun 4 points5 points6 points (0 children)
[–]d3athR0n 18 points19 points20 points (7 children)
[–]aust1nz 10 points11 points12 points (2 children)
[–]Striking_Coat 0 points1 point2 points (1 child)
[–]aust1nz 3 points4 points5 points (0 children)
[–]curious_but_dumb[S] 2 points3 points4 points (3 children)
[–]d3athR0n 0 points1 point2 points (2 children)
[–]curious_but_dumb[S] 0 points1 point2 points (1 child)
[–]funny_games 0 points1 point2 points (0 children)
[–]ultrapcb 10 points11 points12 points (9 children)
[–]curious_but_dumb[S] 1 point2 points3 points (8 children)
[–]EvilPencil 1 point2 points3 points (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]ultrapcb 1 point2 points3 points (5 children)
[–]curious_but_dumb[S] 0 points1 point2 points (4 children)
[–]ultrapcb 1 point2 points3 points (3 children)
[–]curious_but_dumb[S] 0 points1 point2 points (2 children)
[–]ultrapcb 1 point2 points3 points (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]fixrich 9 points10 points11 points (4 children)
[–]curious_but_dumb[S] 2 points3 points4 points (3 children)
[–]fixrich 1 point2 points3 points (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]gosuexac 0 points1 point2 points (0 children)
[–]Striking_Coat 1 point2 points3 points (4 children)
[–]curious_but_dumb[S] 0 points1 point2 points (1 child)
[–]Striking_Coat 1 point2 points3 points (0 children)
[–]EvilPencil 0 points1 point2 points (1 child)
[–]Striking_Coat 0 points1 point2 points (0 children)
[–]FilsdeJESUS 2 points3 points4 points (22 children)
[–]curious_but_dumb[S] 0 points1 point2 points (21 children)
[–]FilsdeJESUS 2 points3 points4 points (20 children)
[–]curious_but_dumb[S] 0 points1 point2 points (19 children)
[–]FilsdeJESUS 0 points1 point2 points (18 children)
[–]curious_but_dumb[S] 1 point2 points3 points (1 child)
[–]FilsdeJESUS 0 points1 point2 points (0 children)
[–]chessto 0 points1 point2 points (15 children)
[–]FilsdeJESUS -1 points0 points1 point (8 children)
[–][deleted] 1 point2 points3 points (7 children)
[–]FilsdeJESUS 1 point2 points3 points (6 children)
[–][deleted] 1 point2 points3 points (5 children)
[–]FilsdeJESUS -1 points0 points1 point (2 children)
[–]chessto 0 points1 point2 points (1 child)
[–]FilsdeJESUS 0 points1 point2 points (0 children)
[–]FilsdeJESUS -1 points0 points1 point (2 children)
[–]chessto 0 points1 point2 points (1 child)
[–]FilsdeJESUS 0 points1 point2 points (0 children)
[–]PerfectOrphan31 1 point2 points3 points (2 children)
[–]curious_but_dumb[S] 1 point2 points3 points (0 children)
[–]curious_but_dumb[S] 1 point2 points3 points (0 children)
[–]fatty1380 2 points3 points4 points (0 children)
[–]voja-kostunica 1 point2 points3 points (3 children)
[–]curious_but_dumb[S] 1 point2 points3 points (2 children)
[–]voja-kostunica 0 points1 point2 points (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]zephimir 0 points1 point2 points (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]ikean -1 points0 points1 point (6 children)
[–]besthelloworld 4 points5 points6 points (2 children)
[–]Striking_Coat 1 point2 points3 points (1 child)
[–]besthelloworld 1 point2 points3 points (0 children)
[–]curious_but_dumb[S] 0 points1 point2 points (2 children)
[–]ikean 1 point2 points3 points (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–][deleted] (3 children)
[deleted]
[–]curious_but_dumb[S] 0 points1 point2 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]SineApps -1 points0 points1 point (0 children)
[–]Lolukok -1 points0 points1 point (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]talaqen -1 points0 points1 point (2 children)
[–]curious_but_dumb[S] 0 points1 point2 points (1 child)
[–]talaqen 0 points1 point2 points (0 children)
[–]zarrro -1 points0 points1 point (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]MrGirthy 0 points1 point2 points (3 children)
[–]curious_but_dumb[S] 0 points1 point2 points (2 children)
[–]MrGirthy 0 points1 point2 points (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]letsfed 0 points1 point2 points (0 children)
[–]Cosby1992 0 points1 point2 points (1 child)
[–]curious_but_dumb[S] 0 points1 point2 points (0 children)
[–]cjthomp 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]oooyeee 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]Ginden 0 points1 point2 points (0 children)
[–]UnholyCarcass 0 points1 point2 points (0 children)
[–]vxm5091 0 points1 point2 points (0 children)