Introduzione a NestJS [+6 Learning Resources]

NestJS è un framework Node.js progressivo per la creazione di applicazioni lato server scalabili, efficienti e affidabili.

NestJS è stato creato per eliminare codebase disorganizzati. La sua struttura modulare semplifica l’organizzazione del codice in diversi moduli.

NestJS è basato su Typescript e utilizza ExpressJS sotto il cofano. NestJS è amato dagli sviluppatori che vogliono sfruttare il potere di controllo del tipo di TypeScript. NestJS combina diversi aspetti della programmazione reattiva funzionale (FRP), della programmazione orientata agli oggetti (OOP) e della programmazione funzionale (FP).

Perché NestJS?

NestJS è adatto ai principianti in quanto ha una buona struttura e strumenti CLI (Command Line Interface) di facile utilizzo. Gli sviluppatori possono quindi eseguire lo scaffolding di una nuova funzionalità con un singolo comando durante l’utilizzo di questo framework Node.js.

NestJS fornisce il modulo, il servizio, il controller e la pila di test per iniziare. Puoi anche fare affidamento sui numerosi boilerplate e modelli disponibili per semplificare il tuo viaggio di sviluppo.

La curva di apprendimento per NestJS sarà facile per coloro che hanno familiarità con loop, sintassi e condizioni in JavaScript e Angular.

Funzionalità di NestJS

Costruito su dattiloscritto

NestJS è basato su Typescript, un apice di JavaScript. Typescript offre una migliore esperienza di sviluppo in quanto non è necessario controllare manualmente gli errori ogni volta che si modifica qualcosa nel codice. Typescript offre fondamentalmente tutte le funzionalità di JavaScript, ma include anche alcune funzionalità aggiuntive.

Contenitore di inserimento delle dipendenze

L’inserimento delle dipendenze separa l’inizializzazione degli oggetti utilizzati dalla classe dalla classe stessa. In tal caso, la classe viene chiamata “client” mentre le dipendenze della classe sono note come “servizi”. Questa DI integrata in NestJS rende le applicazioni più efficienti e modulari.

Potente interfaccia a riga di comando (CLI)

Puoi inizializzare, sviluppare e gestire tutte le tue applicazioni NestJS utilizzando NestCLI. Ci sono molte cose che puoi fare usando Nest CLI, come;

  • Impalcatura del progetto
  • Servire il progetto in modalità di sviluppo
  • Crea e raggruppa l’applicazione per la distribuzione di produzione

Modularizzazione

Ogni applicazione NestJS ha almeno un modulo. Il modulo ‘root’ è il più basilare. In una tipica app NestJS, ogni parte logica dell’applicazione risiederà nello stesso limite di dominio (modulo). Tale impostazione semplifica l’organizzazione dei componenti in cui un’applicazione avrà più moduli con un set di funzionalità strettamente correlato.

Unit test

I test automatizzati hanno molti vantaggi. Tuttavia, il processo di impostazione di tali test può essere molto più coinvolgente. NestJS ha varie funzionalità per aiutare i team a creare e automatizzare i test. La cosa buona di NestJS è che può essere utilizzato con vari strumenti di test. Il sistema di iniezione delle dipendenze Nest viene reso disponibile durante i test per simulare facilmente i componenti.

Database agonistico

Puoi integrarti facilmente con qualsiasi database SQL o NoSQL in base alle tue esigenze e preferenze quando lavori con NestJS. Collegare NestJS a un database è molto semplice, in quanto è sufficiente caricare un driver Node.js appropriato.

Supporta varie librerie

NestJS è compatibile con vari strumenti, il che velocizza lo sviluppo delle applicazioni. Questo framework supporta registrazione, convalida, memorizzazione nella cache, WebSocket, TypeORM, Mongoose e GraphQL senza alcuna configurazione aggiuntiva.

Architettura e flusso di lavoro di NestJS

NestJS ha un’architettura a 3 livelli composta da controller, provider e moduli. Gli sviluppatori possono quindi creare codice pulito che non si sovrappone.

Fonte immagine: programmazione migliore

Controllori

I controller in NestJS fungono da ponte tra le richieste e le risposte dei client. Il meccanismo di routing indirizzerà sempre la richiesta a un controller appropriato ogni volta che viene effettuata una richiesta HTTP. Il framework utilizza decoratori e classi per creare controller. Ogni metodo di classe viene quindi mappato alle route per ricevere una richiesta specifica.

Fornitori

I fornitori possono essere descritti come i fondamenti di NestJS. I provider vengono inseriti come dipendenze e creano relazioni tra vari oggetti. Le classi in NestJS, come helper, servizi o repository, possono essere trattate come fornitori una volta aggiunto il decoratore `@Injectable()`. Tali provider possono anche essere inseriti in una classe tramite il costruttore e NestJS risolverà le dipendenze.

Moduli

Un modulo in NestJS riunisce un insieme di funzionalità strettamente correlate. Ogni app NestJS ha un modulo root utilizzato come punto di ingresso. L’uso di più moduli è altamente consigliabile se si desidera avere un codice organizzato e di facile lettura. Il decoratore `@Module()` di Nest definisce un modulo e fornisce anche informazioni come dipendenze, controllori e fornitori da abbinare a quel modulo.

Guida introduttiva a NestJS

Assicurati che Node.js e npm siano installati. Hai bisogno di un ambiente di runtime e Node.js è perfetto per questa configurazione. È necessaria la versione >= 12, ad eccezione della v13. Puoi verificare se hai installato Node.js e npm tramite questi comandi;

node -v
npm -v

Se entrambi sono installati, otterrai un output simile a questo

Se non li hai, installali tramite la pagina ufficiale. Fortunatamente, sia Node.js che npm sono installati insieme.

  • Installa l’interfaccia a riga di comando di Nest. Utilizzare i seguenti comandi per impostare la CLI e il progetto;
npm i -g @nestjs/cli
nest new project-name

Scegliamo che il nome del progetto sia mynestapp a scopo dimostrativo. NestJS ti dà la possibilità di lavorare con Typescript o Vanilla JavaScript. Seleziona quello che fa per te e premi invio. Una volta che l’app è stata impalcata, la struttura del file verrà impostata e la cartella “src” verrà fornita con diversi file principali, come mostrato in questo screenshot

  • Esegui l’applicazione/il tuo primo ciao mondo

Una volta completata l’installazione, eseguire questi comandi per eseguire il server di sviluppo

cd mynestapp
npm run start

Digita http://localhost:3000/ sul tuo browser e dovrebbe essere visualizzato il tuo primo “Hello World” su NestJs

NestJS: vantaggi

  • Facile da imparare. È facile padroneggiare NestJS, soprattutto se provieni da Angular o hai una conoscenza generale di JavaScript. La documentazione dettagliata semplifica anche la padronanza del lavoro con questo potente framework.
  • Flessibile. Puoi creare molte cose usando NestJS. Puoi creare applicazioni MVC, applicazioni GraphQL, API RESTful e socket Web utilizzando questo framework Node.js.
  • Viene fornito con migliaia di moduli. I moduli supportati dalla community consentono agli sviluppatori di strutturare facilmente diverse funzionalità durante la creazione di applicazioni lato server.
  • Sviluppo veloce e buona architettura. Non devi creare tutto da zero quando lavori con NestJS. Tuttavia, lo stesso framework ha un’architettura solida per semplificare la comprensione del codice.

NestJS: svantaggi

  • Non favorevole a quelli con sfondi TypeScript e Angular. NestJS prende in prestito molto dall’architettura angolare e coloro che non dispongono di tale conoscenza potrebbero impiegare del tempo per comprendere la sintassi e la struttura.
  • Mancanza in alcune zone. NestJS è ancora giovane e potrebbe non competere favorevolmente con alcuni framework consolidati basati su Python e GO.

Aziende che utilizzano NestJS

#1. Adidas

Adidas, un produttore di scarpe e designer, è tra le aziende che utilizzano NestJS. Le straordinarie funzionalità di NestJS devono aver indotto questo gigante delle scarpe a usarlo sul suo back-end.

#2. Capgemini

Capgemini è una multinazionale francese che offre consulenza, tecnologia, outsourcing e servizi professionali. Questa azienda utilizza NestJS nel suo stack tecnologico.

#3. Roche

Roche è un’azienda sanitaria multinazionale che ha due divisioni; farmaceutica e diagnostica. Roche utilizza NestJS come uno degli stack tecnologici sul suo sito Web principale.

Risorse di apprendimento

#1. Da NestJS Zero a Eroe

NestJS Zero to Hero insegna agli sviluppatori come creare e distribuire applicazioni di back-end aziendali utilizzando Typescript e Node.js. Il corso insegna come creare API, autorizzazione e autenticazione, testare le applicazioni Nest e TypeORM per l’interazione con il database, tra molte altre cose.

#2. NestJS: la guida completa per sviluppatori

Questo corso insegna agli sviluppatori come creare API back-end utilizzando Nest, TypeScript e TypeORM. Questa guida completa contiene tutto ciò di cui hai bisogno per configurare la codifica, i test e l’implementazione dell’app NestJS. Avrai anche una comprensione dietro le quinte del framework web NestJS.

#3. Maestro NestJS

Master NestJS insegna come sviluppare app Node.js di livello aziendale utilizzando TypeScript. Il corso insegna la convalida e la serializzazione dei dati, come funzionano i token JWT, come utilizzare NestCLI e l’astrazione moderna del database, tra molte altre cose.

#4. NestJ in pratica (con MongoDB)

NestJS in Practice insegna tutto ciò di cui hai bisogno per imparare su NestJS, da moduli, controller, GuardsServices, Pipes e Middleware. Il corso adotta un approccio basato sul progetto in cui si codifica e si ospita il codice su GitHub con file zip scaricabili per ogni sezione.

#5. Nest.js: un framework Node.js progressivo

Questo libro introduce gli sviluppatori a NestJS e a come sfruttare JavaScript e TypeScript. Il libro è stato progettato in un formato pratico per assicurarti di poter configurare ed eseguire la tua app NestJS in pochissimo tempo.

#6. Pratico Nest.js: sviluppa applicazioni web MVC pulite

Il libro pratico di Nest.js utilizza un approccio basato su progetto per creare un’applicazione di negozio online che utilizza varie funzionalità di NestJS. Il libro include brevi discussioni, suggerimenti e frasi utili durante la creazione della tua app NestJS.

Conclusione

Oltre ad essere un potente framework Node.js, NestJS è anche uno dei framework Typescript più popolari oggi per le applicazioni lato server. Il fatto che offra le migliori pratiche di codifica e un’architettura di sviluppo standard ha attirato molti ingegneri che vogliono concentrarsi sulla creazione di logica aziendale durante la creazione di applicazioni.