﻿1
00:00:01,030 --> 00:00:02,780
‫Jonas: Wie versprochen werden

2
00:00:02,780 --> 00:00:06,083
‫wir nun in der Praxis Event-Emitter und -Listener einsetzen

3
00:00:07,500 --> 00:00:10,203
‫und hier zunächst eine neue Datei erstellen.

4
00:00:11,770 --> 00:00:15,470
‫Also Ereignisse. js und schließen Sie dieses.

5
00:00:15,470 --> 00:00:18,250
‫Um die eingebauten Knotenereignisse zu verwenden,

6
00:00:18,250 --> 00:00:20,743
‫benötigen wir also das Ereignismodul,

7
00:00:21,890 --> 00:00:22,880
‫und

8
00:00:22,880 --> 00:00:25,533
‫davon benötigen wir eine EventEmitter-Klasse.

9
00:00:27,580 --> 00:00:30,300
‫EventEmitter, dies ist eine Art

10
00:00:30,300 --> 00:00:34,743
‫Standardname für das Ergebnis, dass dieses Ereignismodul erforderlich ist.

11
00:00:35,740 --> 00:00:38,890
‫Dies ist also wieder ein eingebautes Knotenmodul, okay?

12
00:00:38,890 --> 00:00:40,600
‫Um nun einen neuen

13
00:00:40,600 --> 00:00:42,940
‫Emitter zu erstellen, erstellen wir einfach eine

14
00:00:42,940 --> 00:00:45,530
‫Instanz der Klasse, die wir gerade importiert haben.

15
00:00:45,530 --> 00:00:47,273
‫Also ganz einfach

16
00:00:49,470 --> 00:00:52,160
‫myEmitter ist ein neuer EventEmitter.

17
00:00:52,160 --> 00:00:56,240
‫Also EventEmitter einfach so.

18
00:00:56,240 --> 00:00:58,580
‫Denken Sie also an das letzte

19
00:00:58,580 --> 00:01:01,690
‫Video, dass EventEmitters benannte Ereignisse aussenden können und

20
00:01:01,690 --> 00:01:04,090
‫wir diese Ereignisse dann abonnieren können,

21
00:01:04,090 --> 00:01:05,870
‫also im Grunde

22
00:01:05,870 --> 00:01:08,840
‫auf sie hören und dann entsprechend reagieren, okay?

23
00:01:08,840 --> 00:01:10,990
‫Es ist also ein bisschen so, als

24
00:01:10,990 --> 00:01:13,570
‫würde man einen EventListener für ein dummes Element einrichten, zum

25
00:01:13,570 --> 00:01:15,800
‫Beispiel für das Klicken auf eine Schaltfläche, und

26
00:01:15,800 --> 00:01:17,360
‫ich bin sicher, Sie haben

27
00:01:17,360 --> 00:01:20,700
‫dies schon einmal getan, wenn Sie mit JavaScript auf der Clientseite arbeiten, oder?

28
00:01:20,700 --> 00:01:22,590
‫Unser Emitter wird also

29
00:01:22,590 --> 00:01:25,000
‫irgendwann ein benanntes Ereignis aussenden, okay?

30
00:01:25,000 --> 00:01:26,093
‫Also lass

31
00:01:27,050 --> 00:01:29,230
‫uns das einrichten und einfach

32
00:01:29,230 --> 00:01:34,230
‫so tun, als würden wir einen Online-Shop aufbauen oder so, okay?

33
00:01:34,390 --> 00:01:37,277
‫Also können wir myEmitter sagen. emit(), und

34
00:01:37,277 --> 00:01:42,277
‫dann können wir uns jeden beliebigen Eventnamen ausdenken, okay?

35
00:01:43,690 --> 00:01:48,040
‫Wir wollen also ein Event namens newSale ausgeben, okay?

36
00:01:48,040 --> 00:01:50,410
‫Und am Beispiel des Klickens

37
00:01:50,410 --> 00:01:52,470
‫auf eine Schaltfläche, die

38
00:01:52,470 --> 00:01:57,250
‫ich zuvor verwendet habe, ist dieses Senden hier, als würden wir auf

39
00:01:57,250 --> 00:02:01,820
‫die Schaltfläche klicken, und jetzt müssen wir diese Hörer einrichten, okay?

40
00:02:01,820 --> 00:02:03,820
‫Und lassen Sie mich

41
00:02:04,760 --> 00:02:09,000
‫das hier vorher tun, und so verwenden wir wieder unser myEmitter-Objekt.

42
00:02:09,000 --> 00:02:12,470
‫Geben Sie ein, dass wir die on-Methode verwenden, okay?

43
00:02:12,470 --> 00:02:17,330
‫Also auf newSale und dann die Callback-Funktion , die

44
00:02:17,330 --> 00:02:21,673
‫ausgeführt wird, sobald das Ereignis ausgegeben wird.

45
00:02:23,960 --> 00:02:28,287
‫Kommen wir also wie immer einfach zur Konsole.

46
00:02:28,287 --> 00:02:31,810
‫„Es gab einen neuen Verkauf! „Okay, und

47
00:02:31,810 --> 00:02:35,400
‫lass uns noch einen hinzufügen.

48
00:02:35,400 --> 00:02:37,060
‫Denken Sie also daran, dass ich

49
00:02:37,060 --> 00:02:40,850
‫vorhin gesagt habe, dass eines der schönen Dinge an diesen Ereignis-Emittern darin besteht,

50
00:02:40,850 --> 00:02:42,000
‫dass wir tatsächlich

51
00:02:42,000 --> 00:02:44,153
‫mehrere Listener für dasselbe Ereignis einrichten können.

52
00:02:45,350 --> 00:02:46,643
‫Also lass

53
00:02:48,330 --> 00:02:50,220
‫uns das hier machen, und

54
00:02:50,220 --> 00:02:52,413
‫so hören wir natürlich wieder auf

55
00:02:53,308 --> 00:02:55,391
‫das newSale-Ereignis (tippen) und loggen

56
00:02:57,608 --> 00:02:59,370
‫dann einfach etwas anderes.

57
00:02:59,370 --> 00:03:01,200
‫Ist hier nicht wirklich wichtig.

58
00:03:01,200 --> 00:03:04,520
‫Also '"Kundenname:', zum Beispiel 'Jonas''.

59
00:03:04,520 --> 00:03:06,510
‫Testen wir dies also, löschen

60
00:03:06,510 --> 00:03:08,370
‫wir das vorherige, und wir

61
00:03:08,370 --> 00:03:09,530
‫verwenden Knoten

62
00:03:09,530 --> 00:03:12,323
‫und dann Ereignisse. js.

63
00:03:13,250 --> 00:03:16,900
‫Es gab also einen Verkaufs- und Kundennamen: Jonas, und

64
00:03:16,900 --> 00:03:19,830
‫Sie sehen schon, dass es funktioniert.

65
00:03:19,830 --> 00:03:24,170
‫Also, großartig, das ist also das Beobachtermuster, erinnerst du dich?

66
00:03:24,170 --> 00:03:28,660
‫Wo dieser hier das Objekt ist, das die Ereignisse aussendet, und dann

67
00:03:28,660 --> 00:03:29,740
‫diese beiden

68
00:03:29,740 --> 00:03:31,750
‫hier, so weiter und weiter,

69
00:03:31,750 --> 00:03:33,250
‫das sind die Beobachter.

70
00:03:33,250 --> 00:03:34,950
‫Sie beobachten den

71
00:03:34,950 --> 00:03:39,060
‫Emitter und warten, bis er das Ereignis newSale ausgibt.

72
00:03:39,060 --> 00:03:42,710
‫Und natürlich könnte unser Emitter auch andere Events aussenden.

73
00:03:42,710 --> 00:03:46,630
‫Zum Beispiel neuer Kunde oder neuer Auftrag oder

74
00:03:46,630 --> 00:03:50,950
‫so ähnlich, und wir könnten dann auch Hörer hinzufügen, okay?

75
00:03:50,950 --> 00:03:52,860
‫Eine andere Sache, die ich

76
00:03:52,860 --> 00:03:56,580
‫Ihnen zeigen wollte, ist, dass wir sogar Argumente an den

77
00:03:56,580 --> 00:03:58,450
‫EventListener übergeben können, indem

78
00:03:58,450 --> 00:04:02,160
‫wir sie hier als zusätzliches Argument im Emitter übergeben.

79
00:04:02,160 --> 00:04:05,260
‫Sagen wir also, dass neun passieren, in diesem Fall

80
00:04:05,260 --> 00:04:06,900
‫also nur eine Zahl,

81
00:04:06,900 --> 00:04:10,013
‫und wir haben dann einen Zuhörer, der das verwenden möchte.

82
00:04:10,848 --> 00:04:12,520
‫(tippen) Also myEmitter,

83
00:04:12,520 --> 00:04:14,529
‫(tippen) newSale, und

84
00:04:14,529 --> 00:04:16,612
‫nun kann diese

85
00:04:17,553 --> 00:04:18,710
‫Callback-Funktion

86
00:04:18,710 --> 00:04:22,080
‫ein Argument annehmen, also nennen wir

87
00:04:22,080 --> 00:04:23,713
‫es Bestand.

88
00:04:25,460 --> 00:04:28,940
‫Also im Grunde die Menge an Artikeln, die

89
00:04:29,910 --> 00:04:33,560
‫von dem Produkt übrig bleiben, das wir hier verkaufen.

90
00:04:33,560 --> 00:04:35,300
‫Lassen Sie uns eine Vorlagenzeichenfolge verwenden.

91
00:04:35,300 --> 00:04:37,430
‫Es

92
00:04:39,970 --> 00:04:46,115
‫sind jetzt noch Lagerartikel auf Lager.

93
00:04:46,115 --> 00:04:48,640
‫Wenn wir dies jetzt ausführen, sollten wir

94
00:04:48,640 --> 00:04:51,620
‫also sehen, dass jetzt noch neun Artikel auf

95
00:04:51,620 --> 00:04:54,130
‫Lager sind, da wir dieses Ereignis im

96
00:04:54,130 --> 00:04:56,210
‫Wesentlichen mit einer Neun ausgegeben

97
00:04:56,210 --> 00:04:58,500
‫haben, und der Listener kann diesen

98
00:04:58,500 --> 00:05:01,490
‫Wert dann hier als Argument seiner Callback-Funktionen abrufen.

99
00:05:01,490 --> 00:05:03,860
‫Also diese Bestandsvariable hier in diesem Fall.

100
00:05:03,860 --> 00:05:05,260
‫Wenn Sie dies also noch

101
00:05:05,260 --> 00:05:07,940
‫einmal ausführen, dann hier. Es sind noch neun Artikel auf Lager.

102
00:05:07,940 --> 00:05:10,730
‫Also perfekt, und Sie sehen, dass diese drei

103
00:05:10,730 --> 00:05:13,554
‫Protokolle hier in genau derselben Reihenfolge erscheinen, in der

104
00:05:13,554 --> 00:05:16,050
‫sie im Code deklariert sind, okay?

105
00:05:16,050 --> 00:05:17,770
‫Und das ist das normale Verhalten.

106
00:05:17,770 --> 00:05:20,509
‫Wenn wir mehrere Listener für dasselbe Ereignis

107
00:05:20,509 --> 00:05:22,510
‫haben, werden sie synchron ausgeführt.

108
00:05:22,510 --> 00:05:24,930
‫Also nacheinander in der Reihenfolge, in der

109
00:05:24,930 --> 00:05:26,780
‫sie im Code waren.

110
00:05:26,780 --> 00:05:29,600
‫Dieses kleine Beispiel funktioniert also bereits

111
00:05:29,600 --> 00:05:32,440
‫perfekt, aber wenn Sie dieses Muster im

112
00:05:32,440 --> 00:05:35,490
‫wirklichen Leben verwenden, empfiehlt es sich, eine neue

113
00:05:35,490 --> 00:05:38,900
‫Klasse zu erstellen, die tatsächlich vom Knoten EventEmitter erbt.

114
00:05:38,900 --> 00:05:40,793
‫Also so etwas.

115
00:05:41,729 --> 00:05:44,320
‫(Eingabe) Nehmen wir

116
00:05:44,320 --> 00:05:49,247
‫an, die Klasse Sales erweitert EventEmitter, und das

117
00:05:50,800 --> 00:05:55,800
‫ist die ES6- oder ES2015-Syntax für die Klassenvererbung.

118
00:05:56,000 --> 00:05:57,800
‫Und noch einmal hoffe ich,

119
00:05:57,800 --> 00:06:01,700
‫dass Sie zum Zeitpunkt des Kurses mit ES6 vertraut sind, okay?

120
00:06:01,700 --> 00:06:05,760
‫Auswendig gesprochen ist der EventEmitter eine Klasse, also die, die

121
00:06:05,760 --> 00:06:07,920
‫wir aus Events in unsere

122
00:06:07,920 --> 00:06:09,330
‫Verkaufsklasse importiert

123
00:06:09,330 --> 00:06:11,230
‫haben, ist die neue Klasse,

124
00:06:11,230 --> 00:06:13,070
‫die wir erstellen und

125
00:06:13,070 --> 00:06:15,930
‫die alles von der EventEmitter-Klasse erbt, okay?

126
00:06:15,930 --> 00:06:19,110
‫Dann erhält in ES6 jede Klasse einen Konstruktor,

127
00:06:19,110 --> 00:06:20,623
‫eine Funktion, die

128
00:06:20,623 --> 00:06:25,120
‫ausgeführt wird, sobald wir ein neues Objekt aus einer Klasse erstellen, okay?

129
00:06:25,120 --> 00:06:27,863
‫Und was wir hier tun müssen, ist Super

130
00:06:28,780 --> 00:06:31,000
‫zu nennen, und das ist etwas,

131
00:06:31,000 --> 00:06:35,130
‫was wir immer tun müssen, wenn wir eine andere Superklasse erweitern, okay?

132
00:06:35,130 --> 00:06:36,330
‫Dies ist

133
00:06:36,330 --> 00:06:38,420
‫also die Elternklasse und dies ist

134
00:06:38,420 --> 00:06:39,950
‫die Superklasse, und indem

135
00:06:39,950 --> 00:06:43,920
‫wir super ausführen, erhalten wir Zugriff auf alle Methoden der Elternklasse.

136
00:06:43,920 --> 00:06:47,210
‫Also noch einmal EventEmitter in diesem Fall, okay?

137
00:06:47,210 --> 00:06:50,229
‫Was wir jetzt tun müssen,

138
00:06:50,229 --> 00:06:52,780
‫ist, diesen wirklich nach unten

139
00:06:52,780 --> 00:06:55,240
‫zu verschieben (klicken)

140
00:06:55,240 --> 00:07:00,240
‫und jetzt ist mein Emitter ein neuer Vertrieb, okay?

141
00:07:01,260 --> 00:07:03,912
‫Und so wird es jetzt genau so

142
00:07:03,912 --> 00:07:06,350
‫funktionieren, und tatsächlich, und tatsächlich

143
00:07:06,350 --> 00:07:09,560
‫dieser Mechanismus, den ich Ihnen hier gerade gezeigt habe.

144
00:07:09,560 --> 00:07:13,130
‫Das Erweitern der EventEmitter-Klasse ist also im Grunde

145
00:07:13,130 --> 00:07:15,410
‫genau die Art und

146
00:07:15,410 --> 00:07:20,180
‫Weise, wie die verschiedenen Knotenmodule, wie HTTP, Dateisystem und viele

147
00:07:20,180 --> 00:07:23,060
‫andere Knotenkernmodule Ereignisse intern implementieren, okay?

148
00:07:23,060 --> 00:07:24,740
‫Sie erben also

149
00:07:24,740 --> 00:07:26,833
‫alle von der EventEmitter-Klasse.

150
00:07:26,833 --> 00:07:29,420
‫Okay, und mit diesem kleinen Beispiel,

151
00:07:29,420 --> 00:07:32,240
‫das funktioniert, versuchen wir jetzt tatsächlich etwas anderes.

152
00:07:32,240 --> 00:07:35,700
‫Da ich gerade über das HTTP-Modul gesprochen

153
00:07:35,700 --> 00:07:38,610
‫habe, möchte ich Ihnen zeigen,

154
00:07:38,610 --> 00:07:42,190
‫dass es vollständig auf Ereignissen basiert, okay?

155
00:07:42,190 --> 00:07:44,180
‫Also haben wir diesen Teil funktioniert.

156
00:07:44,180 --> 00:07:47,173
‫Lassen Sie uns hier ein paar Kommentare erstellen, etwas,

157
00:07:48,520 --> 00:07:51,780
‫und dann hier unten ein weiteres Beispiel erstellen, in Ordnung?

158
00:07:51,780 --> 00:07:53,530
‫Und was wir tun

159
00:07:53,530 --> 00:07:56,080
‫werden, ist, im Grunde einen kleinen Webserver

160
00:07:56,080 --> 00:08:00,770
‫zu erstellen und dann tatsächlich auf das Ereignis zu hören, das er aussendet, okay?

161
00:08:00,770 --> 00:08:04,793
‫Also, hier oben müssen wir das HTTP-Modul importieren

162
00:08:06,480 --> 00:08:08,563
‫(tippen) Und dann

163
00:08:11,856 --> 00:08:14,606
‫hier unten können wir es verwenden.

164
00:08:16,120 --> 00:08:17,690
‫Also erstellen wir einen

165
00:08:17,690 --> 00:08:19,980
‫Server, und jetzt werde ich es ein

166
00:08:19,980 --> 00:08:23,870
‫bisschen anders machen als wir es in der ersten Kreuzung gemacht haben, okay?

167
00:08:23,870 --> 00:08:26,380
‫Aber es funktioniert tatsächlich genau so.

168
00:08:26,380 --> 00:08:30,030
‫Also alles, was ich hier tun werde, ist jetzt http. createserver und einfach so,

169
00:08:32,630 --> 00:08:34,040
‫und jetzt

170
00:08:34,040 --> 00:08:35,830
‫werde ich im Grunde

171
00:08:35,830 --> 00:08:38,400
‫auf verschiedene Ereignisse hören, die der

172
00:08:38,400 --> 00:08:40,113
‫Server ausgeben wird.

173
00:08:41,490 --> 00:08:44,040
‫Dafür verwende ich wieder on, und

174
00:08:44,040 --> 00:08:47,810
‫wenn Sie sehen, . an einer beliebigen Stelle

175
00:08:47,810 --> 00:08:50,510
‫in einem Knotenprojekt, nun, dann wissen Sie

176
00:08:50,510 --> 00:08:55,510
‫bereits, dass Sie zuhören oder dass der Code auf ein Ereignis wartet, okay?

177
00:08:56,210 --> 00:08:58,310
‫Und das, was

178
00:08:58,310 --> 00:09:02,170
‫wir hier hören, ist das Request-Ereignis, okay?

179
00:09:02,170 --> 00:09:04,600
‫Und so funktioniert es jetzt genauso wie

180
00:09:04,600 --> 00:09:05,870
‫zuvor, wir haben

181
00:09:05,870 --> 00:09:09,640
‫eine Callback-Funktion, die Zugriff auf die Anfrage und die Antwort erhält.

182
00:09:09,640 --> 00:09:12,140
‫Also nichts, was Sie zu diesem

183
00:09:12,140 --> 00:09:16,223
‫Zeitpunkt im Node-Farm-Projekt getan haben, haben wir genau das getan, okay?

184
00:09:17,120 --> 00:09:19,460
‫Also, Konsole. log

185
00:09:19,460 --> 00:09:21,543
‫(eintippen) "Anfrage erhalten" und

186
00:09:22,687 --> 00:09:26,333
‫dann schicken wir auch etwas zurück.

187
00:09:27,650 --> 00:09:29,733
‫(tippt) Eigentlich

188
00:09:30,960 --> 00:09:33,610
‫nur derselbe Text, okay?

189
00:09:33,610 --> 00:09:36,720
‫Und natürlich können wir uns das

190
00:09:36,720 --> 00:09:39,481
‫gleiche Ereignis mehrmals anhören.

191
00:09:39,481 --> 00:09:41,210
‫(Klicken) Also sagen wir hier

192
00:09:41,210 --> 00:09:43,723
‫einfach "Noch eine Anfrage" und verwenden

193
00:09:47,450 --> 00:09:51,850
‫hier ein Emoji, nur damit es ein bisschen mehr auftaucht, und es

194
00:09:51,850 --> 00:09:53,080
‫erscheint nicht.

195
00:09:53,080 --> 00:09:54,233
‫Was ist hier los?

196
00:09:55,500 --> 00:09:56,333
‫Ach, los geht's.

197
00:09:57,700 --> 00:09:59,420
‫Hören Sie also auf

198
00:09:59,420 --> 00:10:02,563
‫eine Anfrage, und wir können auch auf das Abschlussereignis hören.

199
00:10:04,020 --> 00:10:07,970
‫Server beim Schließen, und das ist das Ereignis,

200
00:10:07,970 --> 00:10:09,530
‫das ausgelöst wird,

201
00:10:09,530 --> 00:10:14,530
‫wenn der Server, wie Sie sich vorstellen können, geschlossen wird.

202
00:10:14,616 --> 00:10:16,699
‫(tippen) Okay, das ist

203
00:10:18,500 --> 00:10:21,740
‫das Abhören der Ereignisse, und jetzt denken

204
00:10:21,740 --> 00:10:23,500
‫Sie daran, wir

205
00:10:23,500 --> 00:10:26,620
‫müssen auch den Server tatsächlich starten.

206
00:10:26,620 --> 00:10:28,290
‫Also, und wir starten den

207
00:10:28,290 --> 00:10:30,613
‫Server mit server. Hören Sie

208
00:10:32,990 --> 00:10:36,520
‫zu, übergeben Sie den Port, die Adresse, die in

209
00:10:36,520 --> 00:10:38,463
‫diesem Fall für uns wieder

210
00:10:39,340 --> 00:10:43,260
‫localhost ist, Punkt eins, und dann unsere Callback-Funktion, die optional

211
00:10:44,170 --> 00:10:46,670
‫ist, aber wir sie hier wieder einfügen.

212
00:10:47,722 --> 00:10:49,805
‫(schreibend) "Warten auf

213
00:10:54,057 --> 00:10:56,340
‫Anfragen... "Also,

214
00:10:56,340 --> 00:10:58,073
‫lass uns damit anfangen

215
00:10:59,550 --> 00:11:02,360
‫und wir sehen Warten auf Anfrage... und die Anwendung wird nicht heruntergefahren, und jetzt wissen

216
00:11:02,360 --> 00:11:04,830
‫Sie, warum sie nicht heruntergefahren wird, oder?

217
00:11:04,830 --> 00:11:08,210
‫Das liegt daran, dass die Ereignisschleife immer noch

218
00:11:08,210 --> 00:11:10,510
‫auf eingehende E/A wartet, oder?

219
00:11:10,510 --> 00:11:13,600
‫Das haben wir also in den Veranstaltungsschleifen-Vorträgen gelernt, okay?

220
00:11:13,600 --> 00:11:17,430
‫Lassen Sie uns nun tatsächlich eine Anfrage auf Port 8000 auf dieser URL durchführen.

221
00:11:17,430 --> 00:11:22,177
‫(klicken) (tippen) Und

222
00:11:22,177 --> 00:11:26,544
‫los geht's.

223
00:11:29,000 --> 00:11:29,833
‫Wir sehen also Anfrage erhalten.

224
00:11:29,833 --> 00:11:33,100
‫Das funktioniert also, denn sobald es eine neue

225
00:11:33,100 --> 00:11:36,659
‫Anfrage gibt, sendet der Server automatisch das Anfrageobjekt, okay?

226
00:11:36,659 --> 00:11:41,659
‫Und das sehen wir natürlich hier und hier in der

227
00:11:42,030 --> 00:11:44,450
‫Konsole sehen wir unseren Request

228
00:11:44,450 --> 00:11:45,600
‫Received String.

229
00:11:45,600 --> 00:11:48,193
‫Eigentlich wollte ich mir hier noch einen zulegen.

230
00:11:49,130 --> 00:11:51,831
‫Daher können wir natürlich nur eine Antwort senden.

231
00:11:51,831 --> 00:11:56,135
‫Also hier sollte ich eine andere Konsole haben. log stattdessen.

232
00:11:56,135 --> 00:12:00,973
‫Also lassen, beenden, neu starten, neu

233
00:12:03,000 --> 00:12:06,533
‫laden und, ja, jetzt bekommen wir Request empfangen, der

234
00:12:08,190 --> 00:12:09,023
‫von

235
00:12:10,340 --> 00:12:12,790
‫diesem ersten EventListener kommt, und einen

236
00:12:12,790 --> 00:12:15,170
‫weiteren Request von diesem zweiten EventListener.

237
00:12:15,170 --> 00:12:18,930
‫Eine Sache, die Ihnen wahrscheinlich auffällt, ist, dass jede dieser hier

238
00:12:18,930 --> 00:12:20,690
‫tatsächlich zweimal protokolliert wird.

239
00:12:20,690 --> 00:12:24,750
‫Das bedeutet also, dass der Server das

240
00:12:24,750 --> 00:12:27,720
‫Anforderungsereignis tatsächlich auch zweimal ausgibt.

241
00:12:27,720 --> 00:12:31,000
‫Mal sehen, warum das so ist.

242
00:12:31,000 --> 00:12:33,104
‫(tippt)

243
00:12:33,104 --> 00:12:35,930
‫Also Konsole. protokollieren, anfordern. url.

244
00:12:35,930 --> 00:12:40,643
‫Damit können wir nun

245
00:12:41,510 --> 00:12:43,240
‫auf die URL der Anfrage zugreifen.

246
00:12:43,240 --> 00:12:46,264
‫(klicken) Lass uns

247
00:12:46,264 --> 00:12:49,230
‫hier aufhören.

248
00:12:49,230 --> 00:12:50,300
‫Führen Sie es erneut

249
00:12:50,300 --> 00:12:51,373
‫aus, laden Sie es

250
00:12:53,030 --> 00:12:53,863
‫neu, und

251
00:12:54,970 --> 00:12:58,300
‫so haben wir eine für die Root-URL und dann eine für das Favicon. ico Browser versuchen also automatisch, für

252
00:12:58,300 --> 00:13:01,510
‫jede Website

253
00:13:01,510 --> 00:13:03,880
‫ein Favicon anzufordern, okay?

254
00:13:03,880 --> 00:13:07,140
‫Deshalb ist jeder von ihnen tatsächlich zweimal aufgetaucht, okay?

255
00:13:07,140 --> 00:13:12,140
‫Sie sehen also, dass wir nicht immer auch

256
00:13:12,500 --> 00:13:14,520
‫Ereignisse ausgeben müssen.

257
00:13:14,520 --> 00:13:18,020
‫Dies gilt umso mehr, wenn wir versuchen, den EventEmitter allein zu verwenden.

258
00:13:18,020 --> 00:13:22,390
‫Im Grunde also, wenn wir versuchen, unsere benutzerdefinierten Ereignisse in

259
00:13:22,390 --> 00:13:24,520
‫unseren Anwendungen zu verwenden.

260
00:13:24,520 --> 00:13:26,860
‫In diesem Fall müssen wir die

261
00:13:26,860 --> 00:13:27,740
‫Ereignisse

262
00:13:27,740 --> 00:13:30,450
‫natürlich selbst ausgeben, aber wenn wir ein

263
00:13:30,450 --> 00:13:33,260
‫eingebautes Node-Modul verwenden, geben diese Funktionen oft

264
00:13:33,260 --> 00:13:35,760
‫ihre eigenen Ereignisse aus, und wir müssen

265
00:13:35,760 --> 00:13:37,460
‫uns nur anhören Ihnen.

266
00:13:37,460 --> 00:13:39,530
‫Genau das haben wir hier gemacht, und

267
00:13:39,530 --> 00:13:42,030
‫damit, denke ich, weißt du jetzt alles, was du

268
00:13:42,030 --> 00:13:43,140
‫über Veranstaltungen wissen

269
00:13:43,140 --> 00:13:46,040
‫musst, und bist bereit, mit mir zum nächsten Video zu kommen.

