‫Questo video è un altro davvero emozionante, perché
‫ora creeremo il nostro primo
‫vero server web in grado di accettare richieste
‫e inviare risposte.
‫E il primo passo è includere un altro pacchetto o un
‫altro modulo,
‫e questo si chiama http.
‫Quindi stiamo usando di nuovo
‫la funzione require, e poi richiediamo il modulo http integrato, e
‫questo è quello che ci dà capacità di rete
‫come la costruzione di un server http.
‫Ora, in realtà commentiamo questo codice
‫qui in modo che non ci ostacoli.
‫Quindi creiamo una specie di divisore qui.
‫Quindi questo è
‫archiviato e questo è per il server.
‫E ora, per costruire il nostro server,
‫dobbiamo fare due cose.
‫Per prima cosa creiamo un
‫server, quindi avviamo il server in modo
‫da poter effettivamente ascoltare le richieste in arrivo.
‫Usiamo il nostro modulo http e proprio come prima abbiamo usato
‫un metodo che si trova su quell'oggetto.
‫Proprio come abbiamo fatto con il modulo fs.
‫Quindi, http. createServer e
‫create server accetteranno una funzione di callback, che verrà
‫attivata ogni volta che una
‫nuova richiesta raggiunge il nostro server.
‫E questa funzione di callback
‫ottiene l'accesso a due variabili molto importanti e fondamentali.
‫È la variabile di richiesta e una variabile di risposta.
‫E un po' di più su di loro in un secondo.
‫Quindi, richiesta e
‫risposta, quindi tutto ciò che
‫vogliamo fare ora è inviare effettivamente una risposta
‫al client e lo facciamo con res. che è questo oggetto qui, questo oggetto risposta, . fine, e poi 'Ciao
‫dal server! '. fine, e poi 'Ciao dal server! '.
‫Quindi questa è la risposta che invieremo indietro.
‫Quindi di nuovo, ogni
‫volta che una nuova richiesta raggiunge il nostro server, questa funzione di callback qui verrà
‫chiamata e la funzione di callback avrà accesso all'oggetto richiesta che contiene
‫tutti i tipi di cose come l'URL della richiesta
‫e un sacco di altre cose.
‫D'altra parte, questo oggetto di risposta
‫qui ci offre molti strumenti fondamentalmente per gestire
‫la risposta, quindi per
‫inviare la risposta.
‫Il più semplice è. end, e questa fine qui, la
‫denominazione di questo metodo avrà un po' più senso
‫un po' più tardi.
‫Per ora, sappi solo che questo è il modo più semplice per inviare
‫una risposta molto, molto semplice in questo caso.
‫Quindi è davvero tutto ciò che dobbiamo
‫fare per inviare una risposta in testo semplice quando
‫arriva una determinata richiesta.
‫Ora, se sei un po' confuso su tutti
‫questi termini, come richiesta
‫in arrivo, o invio di risposte, o anche sul
‫motivo per cui abbiamo effettivamente richieste e risposte qui sul
‫nostro server, non preoccuparti, perché abbiamo un'intera lezione in
‫arrivo su come funziona il web dove parleremo
‫del modello client-server e di come
‫funzionano le applicazioni di rete in generale.
‫Ancora una volta, in questa sezione il mio obiettivo
‫principale è mostrarti tutte le cose e farle funzionare
‫davvero, e poi la teoria seguirà
‫un po' più tardi.
‫Questa è la filosofia che
‫ho usato in tutti gli altri miei corsi,
‫e ha funzionato molto
‫bene, quindi credo che sia una buona cosa farlo anche qui.
‫Ad ogni modo, la creazione di
‫un server era la prima parte, e
‫ora la seconda parte consiste nell'ascoltare effettivamente le richieste in arrivo dal client.
‫Ora, per farlo, abbiamo effettivamente bisogno di salvare
‫il risultato di questo createServer qui in una nuova variabile.
‫Quindi, di solito lo chiamiamo server, quindi server è
‫il risultato di questo metodo createServer qui.
‫Quindi creerà un server,
‫e ora usiamo quel server e su quello possiamo chiamare listen.
‫Listen accetta un paio di parametri, il primo è
‫la porta e di solito la
‫porta che usiamo in Note è, ad esempio, 8000.
‫Ma vedrai altri numeri
‫come 3000, 80 o qualcosa del genere.
‫E nel caso ti stia chiedendo cosa
‫sia effettivamente una porta, beh, non ha molta importanza, ma
‫tutto ciò che devi sapere è fondamentalmente un sottoindirizzo
‫su un determinato host,
‫e l'host è ciò che specifichiamo dopo.
‫In realtà non è necessario specificarlo e quindi
‫utilizzeremo per impostazione predefinita un host locale,
‫ma possiamo effettivamente specificarlo
‫anche sull'host locale in modo esplicito.
‫Quindi, l'host locale di solito ha questo indirizzo come predefinito
‫e l'host locale indica semplicemente il computer corrente.
‫Quindi il computer su cui è attualmente in esecuzione il programma.
‫E ancora, questo è
‫l'indirizzo IP standard per quell'host locale.
‫Quindi questo qui inizierà ad ascoltare le richieste in arrivo.
‫Quindi fondamentalmente avviando il server.
‫E come argomento opzionale possiamo anche passare una funzione
‫di callback, che
‫verrà eseguita non appena il
‫server inizia effettivamente ad ascoltare.
‫Quindi qui è abbastanza normale visualizzare semplicemente un messaggio che
‫il server è stato avviato.
‫Quindi diciamo ascoltando le richieste sulla porta 8000.
‫E ora tutto ciò che dobbiamo fare è
‫effettivamente andare a questo URL sul nostro computer sulla porta 8000.
‫Ora, prima di poterlo
‫fare, ovviamente, dobbiamo eseguire l'applicazione Note, quindi
‫note index. js, e qui abbiamo il nostro lock.
‫Quindi ascoltando la richiesta sulla porta 8000.
‫E vedi che l'app
‫continua a funzionare, quindi prima si fermava sempre
‫subito, quindi ha fatto il suo lavoro
‫e poi è uscito dall'applicazione.
‫In questo momento non lo fa.
‫Ciò è dovuto a qualcosa chiamato
‫ciclo di eventi di cui parleremo un
‫po' più avanti in un'altra sezione di questo corso.
‫Ma, indipendentemente dalle ragioni tecniche di
‫ciò, è ovvio che l'app non può davvero
‫uscire subito, perché in tal caso non potremmo ricevere nuove richieste.
‫Quindi, quando avviamo un server, Note non può
‫semplicemente uscire dal processo, quindi esci dal programma,
‫perché l'intero
‫obiettivo è attendere l'arrivo delle richieste.
‫Quindi questo è quello che ti mostrerò dopo.
‫Per ora, apriamo solo l'indirizzo IP sulla porta 8000.
‫E per questo usiamo i due punti e poi il numero di porta.
‫Quindi, questo è l'host, che è l'host locale, i due
‫punti e quindi il numero di porta.
‫Premi invio e ci siamo.
‫Quindi, ciao dal server!
‫E quindi sì, funziona davvero.
‫Hai un vero server web in esecuzione sul
‫tuo computer usando NoteJS, congratulazioni.
‫Quindi torniamo qui e analizziamo di nuovo cosa è successo qui.
‫Abbiamo creato il nostro server, utilizzando createServer
‫e passato una funzione di callback che viene eseguita ogni
‫volta che una nuova richiesta colpisce il server,
‫quindi abbiamo iniziato ad
‫ascoltare le richieste in arrivo sull'IP dell'host
‫locale e quindi sulla porta 8000.
‫Una volta che tutto questo è stato eseguito, abbiamo effettivamente eseguito
‫la richiesta premendo quell'URL.
‫Quindi fondamentalmente colpendo l'host locale sulla porta 8000.
‫Quindi, sotto il
‫cofano di NoteJS è stato generato un evento
‫di cui, ancora una volta, parleremo un po' più avanti.
‫Ma ciò che conta qui è che
‫questo evento ha quindi reso questa funzione di callback chiamata.
‫E alla fine, come
‫risultato di ciò, abbiamo recuperato questa stringa.
‫Giusto per curiosità, diamo un'occhiata
‫all'oggetto della richiesta.
‫Dobbiamo chiudere il server e riavviarlo
‫perché abbiamo apportato alcune modifiche al codice.
‫E nota come questa volta ho effettivamente usato il controllo
‫C per uscire dall'applicazione.
‫Quindi ricorda che all'inizio, quando abbiamo usato
‫l'ondulazione, ho usato il controllo
‫D per uscirne.
‫Ma ora che abbiamo
‫un programma Note che funziona in questo modo,
‫dobbiamo usare il controllo C per interrompere sostanzialmente quel programma.
‫Ecco perché qui ho usato il controllo C e per
‫tutto il
‫resto del corso, quando voglio finire un programma,
‫userò sempre il controllo C.
‫Quindi, questo è di nuovo controllo e non comando C.
‫Anche su un Mac è necessario utilizzare il controllo C.
‫Facciamolo di nuovo, otteniamo la stessa risposta, ma
‫ora dovremmo avere qualcosa nella console.
‫Quindi questo è l'oggetto della richiesta e, come ho detto,
‫ci sono un sacco di cose qui.
‫Lo vedi?
‫Tutto questo, in realtà non si adatta nemmeno alla console.
‫Penso che
‫non posso nemmeno mostrarti tutti i dati interessanti che ci sono.
‫In realtà qui abbiamo alcune intestazioni, quindi abbiamo
‫l'host e qui abbiamo alcune...
‫Di nuovo, quindi
‫abbiamo alcune intestazioni http, di cui parleremo
‫credo nel prossimo video.
‫Ad ogni modo, ciò che conta qui
‫è che abbiamo davvero accesso a
‫tutti i tipi di cose quando gestiamo la richiesta e inviamo la risposta.
‫Non importa qui, in realtà sbarazziamoci di
‫questo, diamogli un salvataggio, quindi chiudiamo questo e ricominciamo.
‫E ora, solo per finire
‫questo video, voglio mostrarvi cosa costruiremo effettivamente nelle prossime
‫due lezioni fino
‫alla fine di questa sezione.
‫Quindi è questa piccola app divertente chiamata node farm.
‫Abbiamo un paio di prodotti qui
‫e abbiamo creato tutto questo qui utilizzando un modello html molto semplice,
‫quindi puoi fare clic sul collegamento e in
‫pratica ti porterà
‫alla pagina dei dettagli per questo prodotto,
‫in questo caso gli avocado.
‫Ha un mucchio di dati qui,
‫un pulsante che non fa nulla e poi
‫possiamo tornare alla pagina.
‫Quindi, avocado, poi abbiamo il formaggio per
‫esempio, e poi, ovviamente,
‫ha dati diversi per ciascuno di questi prodotti.
‫Quindi ha questo bel design
‫fresco e un po' folle per farlo risaltare
‫un po', e sì, penso che questo sia un piccolo progetto divertente.
‫E inizieremo a costruirlo in realtà,
‫proprio nel prossimo video.