1
00:00:03,930 --> 00:00:06,395
In der vorherigen Vorlesung

2
00:00:06,395 --> 00:00:14,130
haben wir über das Wesentliche der Vernetzung einschließlich Details des HTTP-Protokolls erfahren.

3
00:00:14,130 --> 00:00:20,805
Jetzt werden wir uns ansehen, wie Node verwendet werden kann, um einen HTTP-Server zu konstruieren.

4
00:00:20,805 --> 00:00:28,420
Hier kommt uns das Kern-HTTP-Modul, das in Node integriert ist, zu Hilfe.

5
00:00:28,420 --> 00:00:33,820
Darüber hinaus werden wir uns ein paar andere Kernknoten Module ansehen, die nützlich sind, um

6
00:00:33,820 --> 00:00:40,390
einen HTTP-Server aus der Verwendung von Node zu erstellen.

7
00:00:40,390 --> 00:00:42,730
Also, wie nutzen wir das Node HTTP-Modul?

8
00:00:42,730 --> 00:00:50,045
Wie bereits erwähnt, ist das HTTP-Modul eines der Kernmodule, die in den Knoten integriert sind.

9
00:00:50,045 --> 00:00:53,275
Dies ist also ein Kernnetzwerkmodul, das

10
00:00:53,275 --> 00:00:58,475
eine leistungsstarke Grundlage für HTTP-Stack unterstützt.

11
00:00:58,475 --> 00:01:02,440
Die Verwendung des Moduls innerhalb unserer Node-Anwendung erfordert daher

12
00:01:02,440 --> 00:01:06,430
, dass wir das Modul in unsere Anwendung importieren.

13
00:01:06,430 --> 00:01:12,190
Das ist also, was wir tun, indem wir const HTTP = erfordern und

14
00:01:12,190 --> 00:01:15,120
den Namen des Moduls HTTP dort.

15
00:01:15,120 --> 00:01:17,260
Sobald das Modul importiert wurde,

16
00:01:17,260 --> 00:01:24,330
unterstützt dieses HTTP-Modul eine CreateServer-Funktion, die

17
00:01:24,330 --> 00:01:29,500
als Parameter eine Funktion übernimmt, die als

18
00:01:29,500 --> 00:01:32,890
Callback-Funktion für das CreateServer-Modul fungiert und

19
00:01:32,890 --> 00:01:37,240
diese Funktion hat zwei Parameter: request und response.

20
00:01:37,240 --> 00:01:40,120
Die Anfrage ist die Anforderungsnachricht, die von

21
00:01:40,120 --> 00:01:44,380
der Client-Seite kommt, und wir können die Anforderungsnachricht analysieren und dann

22
00:01:44,380 --> 00:01:48,010
viele Informationen aus der Anforderungsnachricht extrahieren und sie verwenden, um

23
00:01:48,010 --> 00:01:51,850
Entscheidungen darüber zu treffen, wie wir die Antwortnachricht entsprechend konstruieren.

24
00:01:51,850 --> 00:01:56,665
Die Antwortnachricht wird mit dem zweiten Parameter hier aufgebaut, dem res,

25
00:01:56,665 --> 00:02:01,855
auf dem wir die verschiedenen Header-Werte für

26
00:02:01,855 --> 00:02:08,830
unsere HTTP-Antwortnachricht und auch den Körper der HTTP-Antwortnachricht konstruieren können.

27
00:02:08,830 --> 00:02:10,120
Nun, um den Server zu starten,

28
00:02:10,120 --> 00:02:11,725
sobald Sie den Server erstellen,

29
00:02:11,725 --> 00:02:16,030
dann würden Sie sagen server.listen und dann geben Sie die Portnummer

30
00:02:16,030 --> 00:02:20,420
und den Hostnamen für den Server, und das wird unseren Server starten.

31
00:02:20,420 --> 00:02:27,520
Wir werden uns einige Details in der Beispielübung ansehen, die dieser Vorlesung folgt.

32
00:02:27,520 --> 00:02:32,770
Wie bereits erwähnt, sind die Informationen der eingehenden Anforderungsnachricht

33
00:02:32,770 --> 00:02:38,130
über den req-Parameter verfügbar, den die Funktion in der CreateServer-Methode annimmt.

34
00:02:38,130 --> 00:02:40,480
Also, die req oder Anfrage,

35
00:02:40,480 --> 00:02:42,460
wenn Sie es vollständigen Namen geben wollen,

36
00:02:42,460 --> 00:02:46,120
können Sie es als eine Anfrage nennen, aber im Allgemeinen haben wir festgestellt, dass in

37
00:02:46,120 --> 00:02:50,425
Beispielen wir req verwendet haben, um die Anfrage Nachricht darzustellen.

38
00:02:50,425 --> 00:02:57,462
Es unterstützt die Javascript-Objekteigenschaften wie den Header,

39
00:02:57,462 --> 00:03:02,225
den Körper und auch verschiedene Informationen, die extrahiert werden können,

40
00:03:02,225 --> 00:03:09,350
die URL und die Methode, die von dieser Client-Site angefordert wurde.

41
00:03:09,350 --> 00:03:13,240
Und als Antwort konstruieren Sie die Antwort mit dem

42
00:03:13,240 --> 00:03:18,424
Antwort-Javascript-Objekt, das diese setHeader-Funktion unterstützt,

43
00:03:18,424 --> 00:03:23,570
die StatusCode-Funktion, die auf den Statuscode der Antwortnachricht gesetzt werden kann.

44
00:03:23,570 --> 00:03:26,235
Und dann würden Sie die Nachricht schreiben, die

45
00:03:26,235 --> 00:03:29,440
res.write sagt, und Sie würden die Nachricht beenden, indem Sie

46
00:03:29,440 --> 00:03:35,785
res.end sagen und das nimmt den letzten Teil des Körpers für die Nachricht.

47
00:03:35,785 --> 00:03:40,225
Der Text kann entweder Standardtext oder HTML oder

48
00:03:40,225 --> 00:03:47,369
andere Informationen sein, die Sie innerhalb des Textkörpers dieser Antwortnachricht einschließen möchten.

49
00:03:47,369 --> 00:03:49,780
Aber sobald das res.end aufgerufen wird,

50
00:03:49,780 --> 00:03:54,460
wird die Antwort vom HTTP-Server an den Client zurückgesendet.

51
00:03:54,460 --> 00:03:59,185
Zwei weitere Kernmodule, die für uns nützlich sind,

52
00:03:59,185 --> 00:04:04,295
wenn wir den Knoten HTTP-Server konstruieren, ist das Knotenpfadmodul.

53
00:04:04,295 --> 00:04:09,145
Das Pfadmodul ermöglicht es uns, den Pfad zu einer Datei anzugeben und dann zu

54
00:04:09,145 --> 00:04:14,375
prüfen, ob die Datei existiert oder weitere Details zu einer Datei zu untersuchen.

55
00:04:14,375 --> 00:04:17,620
Zum Beispiel die Erweiterung der Datei,

56
00:04:17,620 --> 00:04:19,185
Name und so weiter.

57
00:04:19,185 --> 00:04:22,000
So kann das Pfadmodul innerhalb

58
00:04:22,000 --> 00:04:26,360
unserer Anwendung verwendet werden, indem das Pfadmodul benötigt wird, wie hier gezeigt.

59
00:04:26,360 --> 00:04:28,360
Und dann unterstützt dies Methoden,

60
00:04:28,360 --> 00:04:29,990
wie zum Beispiel path.resolve,

61
00:04:29,990 --> 00:04:33,940
die einen relativen Pfad in einen

62
00:04:33,940 --> 00:04:38,620
absoluten Pfad umwandeln, der den gesamten Pfad zur Datei.

63
00:04:38,620 --> 00:04:43,930
Sie können auch den Erweiterungsnamen für die Datei überprüfen, indem Sie die

64
00:04:43,930 --> 00:04:47,830
Funktion path.extname aufrufen und den Dateipfad angeben,

65
00:04:47,830 --> 00:04:52,640
der die Erweiterung des Dateinamens untersucht.

66
00:04:52,640 --> 00:04:57,970
In ähnlicher Weise

67
00:04:57,970 --> 00:05:00,670
ermöglicht das Dateisystemmodul, wieder ein Kernmodul in Node,

68
00:05:00,670 --> 00:05:04,805
Dateien zu lesen und zu schreiben, die im lokalen Dateisystem auf dem Computer vorhanden sind.

69
00:05:04,805 --> 00:05:08,725
So können die Dateisystemmodule innerhalb

70
00:05:08,725 --> 00:05:13,480
unserer Node-Anwendung verwendet werden, indem sie es wie hier gezeigt erfordern.

71
00:05:13,480 --> 00:05:16,765
Und dann unterstützen diese Dateisystemmodule viele Methoden,

72
00:05:16,765 --> 00:05:21,460
einschließlich einer Methode, um zu überprüfen, ob die Datei im lokalen Dateisystem vorhanden ist oder nicht.

73
00:05:21,460 --> 00:05:24,190
Das fs.exists wird also

74
00:05:24,190 --> 00:05:28,165
den FilePath als ersten Parameter nehmen und der zweite Parameter ist

75
00:05:28,165 --> 00:05:35,530
eine Callback-Funktion, die mit einem Parameter zurückkommt, den wir als existiert benennen können.

76
00:05:35,530 --> 00:05:38,410
Dieser Parameter, existiert, ist true, wenn die Datei

77
00:05:38,410 --> 00:05:43,595
existiert, und ist false, wenn die Datei nicht im lokalen Dateisystem vorhanden ist.

78
00:05:43,595 --> 00:05:50,390
In ähnlicher Weise können Sie aus der Datei lesen, indem Sie einen Lesestrom mit dem Dateipfad erstellen.

79
00:05:50,390 --> 00:05:53,585
Sie können also fs.createReadStream und

80
00:05:53,585 --> 00:05:58,240
den FilePath sagen und dies kann an die Antwortnachricht weitergeleitet werden.

81
00:05:58,240 --> 00:06:01,175
Die Datei wird also aus der Datei gelesen, die vom

82
00:06:01,175 --> 00:06:05,290
FilePath angegeben wird, und dann wird der Inhalt in den

83
00:06:05,290 --> 00:06:13,220
Körper der Antwortnachricht eingefügt, indem eine verkettete Funktion aufgerufen wird, wie hier gezeigt.

84
00:06:13,220 --> 00:06:17,920
Dies sind also einige Beispiele für einige Kernknoten Module, die sehr

85
00:06:17,920 --> 00:06:23,710
nützlich sein werden, wenn wir einen HTTP-Server mit Node konstruieren.

86
00:06:23,710 --> 00:06:29,223
Nun, da wir einige Details über den HTTP-Server verstehen und wie er konstruiert werden kann,

87
00:06:29,223 --> 00:06:30,690
gehen wir zu der Übung,

88
00:06:30,690 --> 00:06:36,880
wo wir einen einfachen Knoten HTTP-Server konstruieren werden, der zuerst

89
00:06:36,880 --> 00:06:41,950
einige grundlegende Informationen bereitstellt und danach werden wir Dateien bereitstellen

90
00:06:41,950 --> 00:06:48,170
, die in einem öffentlichen Ordner in unser Projekt.