Which Node.js framework would you recommend for REST API?

This page summarizes the projects mentioned and recommended in the original post on /r/node

SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
  • Nest

    A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript ๐Ÿš€

  • 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.

  • Hapi

    The Simple, Secure Framework Developers Trust

  • 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.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • LoopBack

    LoopBack makes it easy to build modern applications that require complex integrations.

  • nx

    Smart Monorepos ยท Fast CI

  • As for the "maintainability", I guess that just comes down between developers. I've seen Nest applications that are built incredibly poorly, and I've seen beautiful Express applications. It just depends. I find [Nx[(https://nx.dev) to be a really nice repository management tool, but again, it just comes down to each dev.

  • nest-content-negotiation

    A small server to show off a content negotiation interceptor

  • Then you have the enhancers, which are really just specialized middleware that can be transport agnostic. You have guards which handle your authentication. If a guard's canActivate returns true (sync or async, promise or observable) then the request continues on. If false is returned, Nest will automatically send back a 403 (customizable through a filter). You have pipes which are for you payload/parameter validation and transformation. Out of the box, Nest support class-validator and class-transformer, but you can use any validation method you prefer (via passing the schema to a custom pipe's constructor) or you can make your own version of the ValidatioinPipe to work with other class based systems like @deepkit/type (I'm slowly working on building this to be a drop in replacement). Next up you have interceptors which are pretty much your swiss-army-knife enhancer. They have pre and post controller logic available so they're great for logging and caching responses, as well as response mapping and serialization (just to name a few things they can do). You can also set up some sweet content negotiation or dynamic template rendering with a bit of clever work. And then you have filters which are your built in error handlers. You throw an error, these can catch it.

  • graphql

    GraphQL (TypeScript) module for Nest framework (node.js) ๐Ÿท (by nestjs)

  • Then you've got integration with OpenAPI, GraphQL, Websockets, andways to build CLI applications and it's pretty easy to see that just about anything you'd want to do in Node can be done with NestJS. And that's not even touching the testing side of things yet.

  • nestjs-dynamic-render

    A repository to show a way to dynamically render a template without using Nest's `@Render()` decoraotr

  • Then you have the enhancers, which are really just specialized middleware that can be transport agnostic. You have guards which handle your authentication. If a guard's canActivate returns true (sync or async, promise or observable) then the request continues on. If false is returned, Nest will automatically send back a 403 (customizable through a filter). You have pipes which are for you payload/parameter validation and transformation. Out of the box, Nest support class-validator and class-transformer, but you can use any validation method you prefer (via passing the schema to a custom pipe's constructor) or you can make your own version of the ValidatioinPipe to work with other class based systems like @deepkit/type (I'm slowly working on building this to be a drop in replacement). Next up you have interceptors which are pretty much your swiss-army-knife enhancer. They have pre and post controller logic available so they're great for logging and caching responses, as well as response mapping and serialization (just to name a few things they can do). You can also set up some sweet content negotiation or dynamic template rendering with a bit of clever work. And then you have filters which are your built in error handlers. You throw an error, these can catch it.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • NestJS tip: how to change HTTP server timeouts

    1 project | dev.to | 6 Apr 2024
  • Don't go all-in Clean Architecture: An alternative for NestJS applications

    3 projects | dev.to | 19 Mar 2024
  • NestJS is now the most starred Node framework on GitHub

    1 project | news.ycombinator.com | 14 Nov 2023
  • Supercharge Your Testing Workflow: Creating Unit and E2E Tests 10x Faster with ChatGPT-3 Inside NestJS

    2 projects | dev.to | 8 Nov 2023
  • @nestjs/ng-universal dependency warnings lead to broken build

    1 project | /r/nestjs | 22 Oct 2023