Nella lezione precedente,
abbiamo appreso gli elementi essenziali del networking, inclusi i dettagli del protocollo HTTP.
Ora, vedremo come Node può essere utilizzato per costruire un server HTTP.
Questo è dove il modulo HTTP principale che è integrato in Node viene in nostro aiuto.
Inoltre, vedremo un paio di altri moduli nodo core che sono utili per la
costruzione di un server HTTP utilizzando Node.
Quindi, come facciamo a utilizzare il modulo HTTP Node?
Come ho accennato, il modulo HTTP è uno dei moduli principali che sono integrati nel nodo.
Quindi, questo è un modulo di rete di base che supporta
una base ad alte prestazioni per lo stack HTTP.
Quindi, utilizzando il modulo all'interno della nostra applicazione Node
ci richiede di importare il modulo nella nostra applicazione.
Quindi questo è quello che facciamo dicendo const HTTP = richiedono e,
il nome del modulo HTTP lì.
Ora, una volta importato il modulo,
questo modulo HTTP supporta una funzione CreateServer che accetta,
come parametro, una funzione che funge da
funzione di callback per il modulo CreateServer e
questa funzione ha due parametri: richiesta e risposta.
La richiesta è il messaggio di richiesta che arriva
dal lato client e siamo in grado di analizzare il messaggio di richiesta e quindi estrarre
un sacco di informazioni dal messaggio di richiesta e usarlo per
prendere decisioni su come costruiamo il messaggio di risposta corrispondente a quello.
Il messaggio di risposta è costruito utilizzando il secondo parametro qui, la res,
su cui possiamo costruire i vari valori di intestazione per il
nostro messaggio di risposta HTTP e anche il corpo del messaggio di risposta HTTP.
Ora, per avviare il server,
una volta creato il server,
allora si direbbe server.listen e poi fornire il numero di porta
e il nome host per il server e che avvierà il nostro server.
Esamineremo alcuni dettagli nell'esercizio degli esempi che segue questa lezione.
Come accennato, le informazioni del messaggio di richiesta in arrivo sono disponibili
tramite il parametro req che la funzione accetta nel metodo CreateServer.
Quindi, il req o la richiesta,
se vuoi dargli nome completo,
puoi chiamarlo come una richiesta ma in generale abbiamo scoperto che negli
esempi abbiamo usato req per rappresentare il messaggio di richiesta.
Supporta le proprietà dell'oggetto Javascript come l'intestazione,
il corpo e anche varie informazioni che possono essere estratte,
l'URL e il metodo che è stato richiesto da quel sito client.
E, in risposta, si costruisce la risposta utilizzando
l'oggetto Javascript risposta che supporta tale funzione SetHeader,
la funzione StatusCode che può essere impostata sul codice di stato del messaggio di risposta.
E poi scriveresti il messaggio dicendo
res.write e termineresti il messaggio dicendo
res.end e che prende la parte finale del corpo per il messaggio.
Il corpo può essere testo standard o HTML o
qualsiasi altra informazione che si desidera racchiudere all'interno del corpo del messaggio di risposta.
Ma una volta chiamato res.end,
la risposta viene inviata al client dal server HTTP.
Altri due moduli principali che sono utili per noi
quando stiamo costruendo il server HTTP nodo è il modulo percorso nodo.
Il modulo percorso ci permette di specificare il percorso di un file e quindi
esaminare se il file esiste o esaminare ulteriori dettagli su un file.
Ad esempio, l'estensione del file,
il nome e così via.
Così, il modulo percorso può essere utilizzato all'interno della
nostra applicazione richiedendo il modulo percorso come mostrato qui.
E poi, questo supporta i metodi,
come ad esempio, path.resolve,
che convertirà un percorso relativo in
un percorso assoluto che l'intero percorso del file.
È inoltre possibile controllare il nome dell'estensione del file chiamando la
funzione path.extname e fornendo il percorso del file che
esaminerà l'estensione del nome del file.
Allo stesso modo, il modulo del file system, di
nuovo un modulo principale in Node,
ci permetterà di leggere e scrivere
i file che esistono nel file system locale sul computer.
Così i moduli di file system possono essere utilizzati all'interno della
nostra applicazione nodo richiedendo come mostrato qui.
E poi, questi moduli di file system supportano molti metodi,
tra cui un metodo per verificare se il file esiste nel file system locale o meno.
Quindi fs.exists prenderà
FilePath come primo parametro e il secondo parametro è
una funzione di callback che tornerà con un parametro che possiamo chiamarlo come esiste.
Questo parametro, esiste, sarà true se il file
esiste e sarà falso se il file non esiste nel file system locale.
Allo stesso modo, è possibile leggere dal file creando un flusso di lettura dato il percorso del file.
Quindi puoi dire fs.CreateReadStream e
FilePath e questo può essere reindirizzato al messaggio di risposta.
Quindi il file verrà letto dal file
dato dal FilePath e quindi il contenuto verrà
inserito nel corpo del messaggio di risposta chiamando una funzione concatenata come mostrato qui.
Quindi, questi sono alcuni esempi di alcuni moduli nodo core che saranno molto
utili quando stiamo costruendo un server HTTP utilizzando Node.
Ora, che comprendiamo alcuni dettagli sul server HTTP e su come può essere costruito,
andiamo all'esercizio,
dove costruiremo un semplice server HTTP Node che prima servirà
alcune informazioni di base e poi serviremo i file
che esistono in una cartella pubblica in il nostro progetto.