1
00:00:03,930 --> 00:00:06,395
Nella lezione precedente,

2
00:00:06,395 --> 00:00:14,130
abbiamo appreso gli elementi essenziali del networking, inclusi i dettagli del protocollo HTTP.

3
00:00:14,130 --> 00:00:20,805
Ora, vedremo come Node può essere utilizzato per costruire un server HTTP.

4
00:00:20,805 --> 00:00:28,420
Questo è dove il modulo HTTP principale che è integrato in Node viene in nostro aiuto.

5
00:00:28,420 --> 00:00:33,820
Inoltre, vedremo un paio di altri moduli nodo core che sono utili per la

6
00:00:33,820 --> 00:00:40,390
costruzione di un server HTTP utilizzando Node.

7
00:00:40,390 --> 00:00:42,730
Quindi, come facciamo a utilizzare il modulo HTTP Node?

8
00:00:42,730 --> 00:00:50,045
Come ho accennato, il modulo HTTP è uno dei moduli principali che sono integrati nel nodo.

9
00:00:50,045 --> 00:00:53,275
Quindi, questo è un modulo di rete di base che supporta

10
00:00:53,275 --> 00:00:58,475
una base ad alte prestazioni per lo stack HTTP.

11
00:00:58,475 --> 00:01:02,440
Quindi, utilizzando il modulo all'interno della nostra applicazione Node

12
00:01:02,440 --> 00:01:06,430
ci richiede di importare il modulo nella nostra applicazione.

13
00:01:06,430 --> 00:01:12,190
Quindi questo è quello che facciamo dicendo const HTTP = richiedono e,

14
00:01:12,190 --> 00:01:15,120
il nome del modulo HTTP lì.

15
00:01:15,120 --> 00:01:17,260
Ora, una volta importato il modulo,

16
00:01:17,260 --> 00:01:24,330
questo modulo HTTP supporta una funzione CreateServer che accetta,

17
00:01:24,330 --> 00:01:29,500
come parametro, una funzione che funge da

18
00:01:29,500 --> 00:01:32,890
funzione di callback per il modulo CreateServer e

19
00:01:32,890 --> 00:01:37,240
questa funzione ha due parametri: richiesta e risposta.

20
00:01:37,240 --> 00:01:40,120
La richiesta è il messaggio di richiesta che arriva

21
00:01:40,120 --> 00:01:44,380
dal lato client e siamo in grado di analizzare il messaggio di richiesta e quindi estrarre

22
00:01:44,380 --> 00:01:48,010
un sacco di informazioni dal messaggio di richiesta e usarlo per

23
00:01:48,010 --> 00:01:51,850
prendere decisioni su come costruiamo il messaggio di risposta corrispondente a quello.

24
00:01:51,850 --> 00:01:56,665
Il messaggio di risposta è costruito utilizzando il secondo parametro qui, la res,

25
00:01:56,665 --> 00:02:01,855
su cui possiamo costruire i vari valori di intestazione per il

26
00:02:01,855 --> 00:02:08,830
nostro messaggio di risposta HTTP e anche il corpo del messaggio di risposta HTTP.

27
00:02:08,830 --> 00:02:10,120
Ora, per avviare il server,

28
00:02:10,120 --> 00:02:11,725
una volta creato il server,

29
00:02:11,725 --> 00:02:16,030
allora si direbbe server.listen e poi fornire il numero di porta

30
00:02:16,030 --> 00:02:20,420
e il nome host per il server e che avvierà il nostro server.

31
00:02:20,420 --> 00:02:27,520
Esamineremo alcuni dettagli nell'esercizio degli esempi che segue questa lezione.

32
00:02:27,520 --> 00:02:32,770
Come accennato, le informazioni del messaggio di richiesta in arrivo sono disponibili

33
00:02:32,770 --> 00:02:38,130
tramite il parametro req che la funzione accetta nel metodo CreateServer.

34
00:02:38,130 --> 00:02:40,480
Quindi, il req o la richiesta,

35
00:02:40,480 --> 00:02:42,460
se vuoi dargli nome completo,

36
00:02:42,460 --> 00:02:46,120
puoi chiamarlo come una richiesta ma in generale abbiamo scoperto che negli

37
00:02:46,120 --> 00:02:50,425
esempi abbiamo usato req per rappresentare il messaggio di richiesta.

38
00:02:50,425 --> 00:02:57,462
Supporta le proprietà dell'oggetto Javascript come l'intestazione,

39
00:02:57,462 --> 00:03:02,225
il corpo e anche varie informazioni che possono essere estratte,

40
00:03:02,225 --> 00:03:09,350
l'URL e il metodo che è stato richiesto da quel sito client.

41
00:03:09,350 --> 00:03:13,240
E, in risposta, si costruisce la risposta utilizzando

42
00:03:13,240 --> 00:03:18,424
l'oggetto Javascript risposta che supporta tale funzione SetHeader,

43
00:03:18,424 --> 00:03:23,570
la funzione StatusCode che può essere impostata sul codice di stato del messaggio di risposta.

44
00:03:23,570 --> 00:03:26,235
E poi scriveresti il messaggio dicendo

45
00:03:26,235 --> 00:03:29,440
res.write e termineresti il messaggio dicendo

46
00:03:29,440 --> 00:03:35,785
res.end e che prende la parte finale del corpo per il messaggio.

47
00:03:35,785 --> 00:03:40,225
Il corpo può essere testo standard o HTML o

48
00:03:40,225 --> 00:03:47,369
qualsiasi altra informazione che si desidera racchiudere all'interno del corpo del messaggio di risposta.

49
00:03:47,369 --> 00:03:49,780
Ma una volta chiamato res.end,

50
00:03:49,780 --> 00:03:54,460
la risposta viene inviata al client dal server HTTP.

51
00:03:54,460 --> 00:03:59,185
Altri due moduli principali che sono utili per noi

52
00:03:59,185 --> 00:04:04,295
quando stiamo costruendo il server HTTP nodo è il modulo percorso nodo.

53
00:04:04,295 --> 00:04:09,145
Il modulo percorso ci permette di specificare il percorso di un file e quindi

54
00:04:09,145 --> 00:04:14,375
esaminare se il file esiste o esaminare ulteriori dettagli su un file.

55
00:04:14,375 --> 00:04:17,620
Ad esempio, l'estensione del file,

56
00:04:17,620 --> 00:04:19,185
il nome e così via.

57
00:04:19,185 --> 00:04:22,000
Così, il modulo percorso può essere utilizzato all'interno della

58
00:04:22,000 --> 00:04:26,360
nostra applicazione richiedendo il modulo percorso come mostrato qui.

59
00:04:26,360 --> 00:04:28,360
E poi, questo supporta i metodi,

60
00:04:28,360 --> 00:04:29,990
come ad esempio, path.resolve,

61
00:04:29,990 --> 00:04:33,940
che convertirà un percorso relativo in

62
00:04:33,940 --> 00:04:38,620
un percorso assoluto che l'intero percorso del file.

63
00:04:38,620 --> 00:04:43,930
È inoltre possibile controllare il nome dell'estensione del file chiamando la

64
00:04:43,930 --> 00:04:47,830
funzione path.extname e fornendo il percorso del file che

65
00:04:47,830 --> 00:04:52,640
esaminerà l'estensione del nome del file.

66
00:04:52,640 --> 00:04:55,870
Allo stesso modo, il modulo del file system, di

67
00:04:55,870 --> 00:04:57,970
nuovo un modulo principale in Node,

68
00:04:57,970 --> 00:05:00,670
ci permetterà di leggere e scrivere

69
00:05:00,670 --> 00:05:04,805
i file che esistono nel file system locale sul computer.

70
00:05:04,805 --> 00:05:08,725
Così i moduli di file system possono essere utilizzati all'interno della

71
00:05:08,725 --> 00:05:13,480
nostra applicazione nodo richiedendo come mostrato qui.

72
00:05:13,480 --> 00:05:16,765
E poi, questi moduli di file system supportano molti metodi,

73
00:05:16,765 --> 00:05:21,460
tra cui un metodo per verificare se il file esiste nel file system locale o meno.

74
00:05:21,460 --> 00:05:24,190
Quindi fs.exists prenderà

75
00:05:24,190 --> 00:05:28,165
FilePath come primo parametro e il secondo parametro è

76
00:05:28,165 --> 00:05:35,530
una funzione di callback che tornerà con un parametro che possiamo chiamarlo come esiste.

77
00:05:35,530 --> 00:05:38,410
Questo parametro, esiste, sarà true se il file

78
00:05:38,410 --> 00:05:43,595
esiste e sarà falso se il file non esiste nel file system locale.

79
00:05:43,595 --> 00:05:50,390
Allo stesso modo, è possibile leggere dal file creando un flusso di lettura dato il percorso del file.

80
00:05:50,390 --> 00:05:53,585
Quindi puoi dire fs.CreateReadStream e

81
00:05:53,585 --> 00:05:58,240
FilePath e questo può essere reindirizzato al messaggio di risposta.

82
00:05:58,240 --> 00:06:01,175
Quindi il file verrà letto dal file

83
00:06:01,175 --> 00:06:05,290
dato dal FilePath e quindi il contenuto verrà

84
00:06:05,290 --> 00:06:13,220
inserito nel corpo del messaggio di risposta chiamando una funzione concatenata come mostrato qui.

85
00:06:13,220 --> 00:06:17,920
Quindi, questi sono alcuni esempi di alcuni moduli nodo core che saranno molto

86
00:06:17,920 --> 00:06:23,710
utili quando stiamo costruendo un server HTTP utilizzando Node.

87
00:06:23,710 --> 00:06:29,223
Ora, che comprendiamo alcuni dettagli sul server HTTP e su come può essere costruito,

88
00:06:29,223 --> 00:06:30,690
andiamo all'esercizio,

89
00:06:30,690 --> 00:06:36,880
dove costruiremo un semplice server HTTP Node che prima servirà

90
00:06:36,880 --> 00:06:41,950
alcune informazioni di base e poi serviremo i file

91
00:06:41,950 --> 00:06:48,170
che esistono in una cartella pubblica in il nostro progetto.