‫Istruttore: Quindi, dopo tutto il discorso sul middleware,
‫ora andiamo avanti
‫e creiamo le nostre funzioni middleware.
‫E ancora, ricorda che in
‫realtà abbiamo già usato il middleware prima.
‫Quindi diamo un'occhiata a questo.
‫E, da qualche parte quassù.
‫E così, vedi che per
‫usare il middleware, abbiamo usato l'uso del punto dell'app, ok?
‫Quindi, il metodo use è quello che usiamo per, sì,
‫usare effettivamente il middleware.
‫Quindi, aggiungi il middleware al nostro stack di middleware, ok?
‫Quindi questo punto json espresso qui chiamando questo metodo json
‫fondamentalmente restituisce una funzione, ok?
‫E quindi quella funzione viene quindi aggiunta allo stack del middleware.
‫E così, in
‫modo simile, possiamo creare la nostra funzione middleware.
‫Quindi, facciamolo ora.
‫E quindi, ovviamente, dobbiamo ancora usare l'uso del punto dell'app.
‫Ok, quindi ora, qui, tutto ciò che dobbiamo fare
‫è tracciare il percorso nella nostra funzione che vogliamo aggiungere allo stack del middleware.
‫Quindi, ricorda dall'ultimo video che,
‫ovviamente, in ogni
‫funzione middleware, abbiamo accesso alla richiesta e alla risposta, ok?
‫Ma abbiamo anche la funzione successiva.
‫E così, proprio così, modifichiamo come terzo argomento
‫di questa funzione middleware, ok?
‫E così, express sa che
‫in realtà stiamo definendo un middleware qui.
‫Bene.
‫Ora, proprio come
‫prima, in realtà, avremmo potuto chiamare questo
‫argomento qui qualcos'altro, come X, o N, o non importa.
‫Ciò che conta è
‫che è il terzo argomento di questa funzione.
‫Quindi express passa sostanzialmente la funzione
‫successiva come terzo argomento in questa funzione middleware.
‫E poi possiamo chiamarlo come vogliamo.
‫Ma ancora una volta, la prossima è davvero la
‫convenzione espressa, e
‫per evitare confusione, usiamo sempre questo nome, ok?
‫E lo stesso per richiesta
‫e risposta, come ho detto prima, potremmo chiamarli in altro modo.
‫Ma la convenzione è chiamarli così.
‫Ad ogni modo, registriamo qualcosa sulla console,
‫qui in questa funzione middleware,
‫solo così abbiamo del codice da eseguire effettivamente ogni
‫volta che c'è una nuova richiesta.
‫Salutiamoci
‫dal middleware.
‫E aggiungi un po' di emoji qui, di nuovo, per farlo risaltare un po'.
‫Mi piace molto.
‫E cosa succede qui?
‫Ah giusto.
‫Quindi questo è il codice che vogliamo eseguire qui.
‫E ora, proprio come abbiamo parlato
‫nell'ultimo video, dobbiamo effettivamente chiamare la funzione successiva, ok?
‫E se non avessimo chiamato
‫il prossimo qui, beh, allora il ciclo
‫di richiesta/risposta sarebbe davvero bloccato a questo punto.
‫Non saremmo in grado
‫di andare avanti e non rispediremmo mai una risposta al cliente.
‫Quindi non posso sottolineare abbastanza quanto sia importante
‫non dimenticare mai di usare next in tutto il tuo middleware.
‫Ok, ed è così semplice.
‫Tutto quello che dobbiamo fare è specificare il prossimo.
‫Quindi, questo argomento qui.
‫E poi chiama effettivamente quella funzione in questo modo.
‫Va bene.
‫E con questo, siamo effettivamente pronti per testarlo.
‫E tutto ciò che
‫dobbiamo fare è inviare una semplice richiesta alla nostra API.
‫Quindi, ecco l'API.
‫Chiudiamo questo qui.
‫E quindi, poco importa, perché
‫questo, ovviamente, vale per ogni singola richiesta.
‫Allora, torniamo indietro.
‫E in effetti, abbiamo ricevuto il
‫saluto dal middleware registrato sulla nostra console, ok?
‫Quindi, fantastico.
‫E volevo toccare rapidamente ciò che ho appena
‫detto prima, ovvero che questo
‫middleware qui si applica a ogni singola richiesta, ok?
‫E questo perché non abbiamo specificato alcun percorso.
‫Quindi, ricorda che prima ho detto che tutti i gestori di route
‫qui sono in realtà una specie di middleware stessi.
‫Sono semplicemente funzioni middleware
‫che si applicano solo a un determinato URL.
‫Quindi un certo percorso, ok.
‫Ma queste più semplici funzioni middleware che
‫definiamo qui sopra,
‫beh, si applicheranno a ogni singola richiesta.
‫Almeno, se il gestore del percorso
‫viene prima di questo middleware.
‫Quindi lascia che ti mostri davvero qualcosa.
‫E lo taglierò da qui e
‫ora lo metterò qui dopo
‫questo gestore di percorsi.
‫Quindi cosa pensi che
‫accadrà ora quando chiamerò questa rotta?
‫Quindi vediamo cosa succede.
‫Quindi questo percorso esatto, quindi quello che ti ho appena mostrato, fammi
‫inviare la richiesta a quello.
‫E ora torniamo indietro e ora non abbiamo
‫il saluto dal middleware.
‫Allora, perché è così?
‫Bene, semplicemente perché questo middleware, quindi
‫questo gestore di route
‫qui, viene prima di questa funzione middleware che abbiamo qui.
‫E questo gestore di route, che in
‫questo caso riceve tutti i tour, termina effettivamente il ciclo di risposta alla richiesta.
‫Quindi diamo un'occhiata a questo.
‫Quindi abbiamo tutti i tour.
‫Allora, dov'è?
‫Sì, quindi ecco la funzione e inviando un risultato
‫con res dot json, terminiamo
‫effettivamente il ciclo di risposta alla richiesta.
‫E quindi il prossimo middleware nello
‫stack, che in questo caso
‫è questo, quindi il nostro personalizzato non verrà chiamato.
‫Di nuovo, perché il ciclo è già finito, ok.
‫Quindi assicurati di capire che questo ordine
‫conta davvero molto in espresso, ok.
‫È fondamentale capire che è
‫così che funzionano le app express, ok.
‫Quindi, per testarlo, proviamo a
‫vedere cosa succede quando
‫facciamo una richiesta a questa rotta.
‫Quindi, per ottenere il tour di aggiornamento o eliminare il tour.
‫Quindi facciamo questo, inviamo la richiesta qui
‫e torniamo indietro e ora abbiamo il
‫saluto dal middleware.
‫Quindi è proprio quello che ci aspettavamo, giusto?
‫Questo perché, ovviamente, questo middleware qui ora è
‫prima del gestore di route.
‫E quindi è, ovviamente, parte dello stack del middleware
‫che viene eseguito prima della fine del ciclo di risposta alla richiesta.
‫Va bene, ha senso?
‫Quindi, riprendiamolo e quindi di solito definiamo
‫questo tipo di middleware globale qui
‫prima di tutti i nostri gestori di rotte.
‫Bene, quindi questa è una funzione
‫middleware molto semplice che abbiamo appena definito per eseguire del codice.
‫Ma in realtà ne facciamo un altro.
‫E, naturalmente, possiamo
‫avere tutte le funzioni middleware che vogliamo.
‫E questa volta
‫vogliamo effettivamente manipolare l'oggetto della richiesta.
‫Quindi la firma qui è sempre
‫la stessa, sempre richiesta, risposta e successiva.
‫E ora manipoliamo effettivamente la richiesta.
‫Tutto ciò che vogliamo
‫fare in questo caso è aggiungere l'ora corrente alla richiesta.
‫Quindi possiamo semplicemente definire
‫una proprietà sull'oggetto richiesta chiamata request time.
‫E poi impostalo su una nuova
‫data,
‫che sostanzialmente si traduce in questo momento.
‫E poi possiamo usare una funzione data molto utile,
‫che viene chiamata alla stringa ISO, che
‫poi la convertirà in una bella
‫stringa leggibile per noi.
‫Quindi, supponiamo di avere un gestore di route
‫che ha davvero bisogno delle
‫informazioni su quando si verifica esattamente la richiesta.
‫E quindi la soluzione molto semplice è
‫semplicemente aggiungere qualcosa di simile a una richiesta utilizzando il middleware.
‫Bene?
‫Ora, non dimenticare,
‫ovviamente, di chiamare il prossimo middleware nello stack, ok.
‫Quindi in questo momento, abbiamo richiesta, tempo per tutte le richieste.
‫Quindi ora possiamo usare alcuni gestori di route qui,
‫ad esempio, (mumbles) per ottenere tutti i tour per
‫registrarli semplicemente per noi sulla console.
‫Quindi il registro dei punti della console e il suo tempo di richiesta effettivo.
‫Ok, o potremmo anche inviare questo nella risposta.
‫Fammi solo testare quello.
‫E chiamiamo questo
‫solo richiesto a e req dot request time.
‫È lui.
‫E quindi, sì, andiamo avanti e scopriamo questo.
‫Quindi il nostro middleware è corretto, giusto?
‫Sì, quindi chiamiamo dopo, quando abbiamo finito, e
‫quindi proviamolo ora.
‫Ricorda che è disponibile su tutti i tour.
‫E quando torniamo indietro ora, o quando
‫saliamo, beh, dovrebbe essere proprio qui.
‫Allora, cosa c'è di sbagliato qui?
‫Lo vedi
‫qui sotto, in realtà abbiamo appena registrato
‫una funzione e sì, ovviamente, non abbiamo effettivamente chiamato le due stringhe ISO.
‫Quindi è un metodo che dobbiamo chiamarlo.
‫Quindi salvalo, riprova.
‫E ora abbiamo richiesto a e poi la data odierna.
‫Così perfetta.
‫Viene dal nostro middleware.
‫Quindi semplicemente perché abbiamo aggiunto quella proprietà alla nostra richiesta.
‫Grande.
‫Quindi spero che tu abbia fatto un grande passo
‫avanti per capire davvero come funziona l'app Node, come funziona
‫il middleware,
‫come funziona l'intero ciclo di risposta alla
‫richiesta, perché questo farà davvero la
‫differenza quando scrivi le proprie applicazioni.