Articoli

Le novità di NestJS 11

NestJS è un framework basato su Node.js che ti permette di costruire applicazioni di livello enterprise efficienti e scalabili. Ora è disponibile la versione 11 del framework NestJS e sono state introdotte importanti funzionalità.

Per migrare dalla versione precedente puoi utilizzare la guida ufficiale disponibile al seguente link.

Contattaci subito e senza impegno per supporto ed assistenza su NestJS.

Logger Enhancements: un nuovo approccio ai log

Il logger predefinito di NestJS, ConsoleLogger, ha ricevuto un importante aggiornamento in questa release. Le principali novità includono:

  • Formattazione migliorata per oggetti e array profondamente annidati;
  • Supporto per mappe e set;
  • Possibilità di personalizzare i prefissi dei log;
  • Nuovo supporto integrato per il logging JSON.

In particolare, riguardo quest’ultimo punto, la configurazione del logging JSON è ora estremamente semplice: come puoi vedere dal codice sottostante, basta una configurazione nel bootstrap dell’applicazione per attivare questa potente funzionalità.

const app = await NestFactory.create(AppModule, {
  logger: new ConsoleLogger({
    json: true,
  }),
});

E’ importante notare che, quando il logging JSON è attivo, i colori vengono disattivati di default. Tuttavia, per facilitare il debug durante lo sviluppo locale, è possibile riabilitarli facilmente attraverso le seguenti linee di codice:

const app = await NestFactory.create(AppModule, {
logger: new ConsoleLogger({
json: true,
colors: true,
}),
});

Contattaci subito e senza impegno per supporto ed assistenza su NestJS.

Maggiore flessibilità nei Microservizi

NestJS 11 ha introdotto miglioramenti significativi in tutti i “transporter” di microservizi ufficialmente supportati (NATS, Kafka, Redis e altri). In particolare scopriamo, di seguito, alcuni di questi miglioramenti.

Nuovo metodo unwrap

Il nuovo metodo unwrap permette di accedere direttamente all’istanza del client sottostante, offrendo così maggiore controllo e flessibilità nelle operazioni avanzate, per esempio sotto trovi come sfruttare la connessione NATS:

const serviceRef = app.connectMicroservice({
transport: Transport.NATS,
options: {
// opzioni di connessione NATS
},
});
const connection = serviceRef.unwrap<NatsConnection>();

Migliore gestione degli eventi

È ora possibile monitorare eventi interni del client in modo più efficace, permettendo una gestione più granulare delle disconnessioni e di altri eventi critici:


// Injecting the client instance 
constructor(
  @Inject(MATH_SERVICE) private readonly client: ClientProxy,
) {}
// Listening to events and status
this.client.on('disconnect', () => console.log('Disconnected'));
this.client.status.subscribe(status => {
  console.log('Status:', status);
});

Monitoraggio dello stato

Il nuovo stream observable dello stato fornisce aggiornamenti in tempo reale sullo stato del client, permettendo una gestione proattiva dei problemi di connettività, di seguito come visualizzare lo stato nella console di sviluppo.

serviceRef.status.subscribe((status) = {
console.log('Status:', status);
});

Contattaci subito e senza impegno per supporto ed assistenza su NestJS.

Startup applicativo ottimizzato

NestJS 11 ha rivisto completamente il processo di generazione delle chiavi per i moduli, migliorando significativamente in questo modo i tempi di avvio delle applicazioni. Il nuovo approccio utilizza riferimenti agli oggetti invece del precedente sistema basato su hash, risultando più efficiente specialmente per moduli dinamici con input di grandi dimensioni.

Supporto per Express v5 e Fastify v5

La nuova versione supporta le ultime versioni di Express e Fastify. Particolarmente rilevanti sono i cambiamenti nell’algoritmo di matching dei percorsi di routing in Express v5 che ti richiederanno alcuni aggiustamenti nella migrazione.

Contattaci subito e senza impegno per supporto ed assistenza su NestJS.

Altri aggiornamenti importanti

Come sempre ogni upgrade si porta dietro una serie di cambiamenti a tutto campo, se vuoi approfondire puoi visitare il link https://trilon.io/blog/announcing-nestjs-11-whats-new altrimenti di seguito puoi trovare una breve lista:

  • L’ordine di esecuzione degli hook del ciclo di vita è stato invertito;
  • CacheModule è stato aggiornato per utilizzare cache-manager v6;
  • Nuovo ParseDatePipe in @nestjs/common;
  • Le opzioni dei microservizi possono ora essere fornite dal container DI;
  • Introdotta IntrinsicException in @nestjs/common;
  • @nestjs/cqrs supporta ora provider con scope request.

Contattaci subito e senza impegno per supporto ed assistenza su NestJS.

Glue Labs e NestJS

Utilizziamo NestJS dalla sua nascita e lo abbiamo implementato in numerose applicazioni enterprise. Grazie all’esperienza maturata in tantissimi settori e con numerosi Clienti, ti assicuriamo le competenze necessarie per sviluppare e gestire applicazioni NestJS con garanzia 12 mesi da qualsiasi bug. Inoltre ti forniamo:

Contattaci subito e senza impegno per maggiori informazioni.