‫Istruttore: Nell'ultimo paio di
‫lezioni, spero che tu abbia iniziato a
‫comprendere i fondamenti dello sviluppo di Express.
‫E quindi ora è il momento perfetto per approfondire
‫il funzionamento di Express,
‫e per questo abbiamo bisogno di parlare
‫del middleware e del ciclo richiesta-risposta.
‫Quindi, l'essenza dello sviluppo Express è
‫comprendere
‫e quindi utilizzare il ciclo richiesta-risposta.
‫Quindi voglio rendere l'idea davvero
‫chiara in modo visivo in questo video.
‫Quindi, per avviare il ciclo di
‫richiesta-risposta, o l'app Express riceve una richiesta quando qualcuno colpisce un server
‫per il quale creerà quindi un oggetto
‫di richiesta e risposta.
‫Tali dati verranno quindi
‫utilizzati ed elaborati per generare e restituire una risposta significativa.
‫Ora, per elaborare quei dati,
‫in Express usiamo qualcosa chiamato middleware,
‫che può manipolare la richiesta o l'oggetto risposta.
‫O esegui davvero qualsiasi altro codice che ci piace.
‫Quindi il middleware non deve
‫sempre riguardare solo la richiesta o l'oggetto
‫risposta, ma di solito riguarda principalmente la richiesta.
‫E in realtà, abbiamo già usato il middleware prima.
‫Abbiamo utilizzato Express dot JSON per ottenere l'accesso al corpo della richiesta
‫sull'oggetto della richiesta.
‫Ricordati che?
‫Ora si chiama middleware ricorda
‫perché è una funzione che viene eseguita tra,
‫quindi nel mezzo della ricezione della richiesta
‫e dell'invio della risposta.
‫E in effetti, possiamo dire che in
‫Express tutto è middleware.
‫Anche le nostre definizioni di percorso.
‫Quindi, ancora una volta, anche quando abbiamo definito le nostre
‫rotte, possiamo pensare alle funzioni del gestore delle rotte che abbiamo
‫scritto come funzioni middleware.
‫Sono semplicemente funzioni
‫middleware che vengono eseguite solo per determinati percorsi.
‫Va bene?
‫Ora alcuni esempi di middleware sono Express dot JSON, che
‫è anche chiamato body-parser e che
‫abbiamo già usato in precedenza.
‫O alcune funzionalità di
‫registrazione o l'impostazione di intestazioni http specifiche.
‫Le possibilità sono davvero infinite con il middleware.
‫Va bene, e ora in termini più
‫tecnici, diciamo che tutto il middleware
‫che usiamo nella
‫nostra app si chiama stack del middleware.
‫Ciò che è molto importante tenere a mente
‫qui è che l'ordine del middleware nello
‫stack è effettivamente definito dall'ordine in
‫cui sono definiti nel codice.
‫Quindi un middleware che appare per primo nel
‫codice, viene eseguito prima di uno che appare in seguito.
‫E quindi l'ordine del codice conta molto in Express.
‫Va bene?
‫Ora, puoi pensare all'intero processo in questo modo, la nostra
‫richiesta e l'oggetto di risposta
‫che sono stati creati
‫all'inizio passano attraverso ogni middleware in cui vengono elaborati
‫o dove viene eseguito solo qualche altro codice.
‫Quindi, alla fine di ogni funzione middleware, viene
‫chiamata una funzione successiva, che
‫è una funzione a cui abbiamo accesso
‫in ogni funzione middleware.
‫Proprio come gli oggetti richiesta e risposta.
‫E lo vedremo ovviamente in codice nel prossimo video.
‫Quindi, quando chiamiamo la funzione
‫successiva, il prossimo middleware nello stack verrà eseguito
‫con lo stesso identico oggetto di richiesta e risposta.
‫E questo accade con tutti i middleware
‫fino a raggiungere l'ultimo.
‫E così, proprio
‫in questo modo, la richiesta iniziale e
‫l'oggetto risposta passano attraverso ogni middleware passo dopo passo.
‫E puoi pensare a questo
‫intero processo come una sorta di pipeline in cui passano i
‫nostri dati, proprio come è stato convogliato dalla richiesta alla risposta finale.
‫Va bene?
‫A proposito di quest'ultima funzione middleware, di
‫solito è un gestore di route proprio come abbiamo codificato prima.
‫Quindi in questo gestore in realtà non chiamiamo la funzione
‫successiva per passare al middleware successivo.
‫Invece, inviamo finalmente i dati di
‫risposta al client.
‫E
‫così, finiamo il cosiddetto ciclo di richiesta-risposta.
‫Quindi il ciclo richiesta-risposta è davvero tutto ciò di
‫cui abbiamo parlato qui insieme.
‫Inizia con la richiesta in entrata,
‫quindi esegue passo dopo passo tutto il middleware
‫nello stack del
‫middleware e infine invia la risposta per completare il ciclo.
‫Quindi vedi, non è davvero complicato.
‫In realtà è solo un processo lineare.
‫Ma vorrei che qualcuno mi avesse mostrato qualcosa
‫di simile quando stavo imparando a creare app Express.
‫Voglio dire, potrei
‫costruirli, ma all'inizio non capivo davvero
‫questo intero ciclo di richiesta-risposta come questo.
‫Era molto confuso.
‫Ecco perché ti sto mostrando questo, perché
‫credo che sarà molto, molto, più facile per te
‫passare al corso ora,
‫dopo aver capito esattamente come funzionano le app Express.