﻿1
00:00:01,090 --> 00:00:02,770
‫Kursleiter: Was ich Ihnen

2
00:00:02,770 --> 00:00:05,210
‫in diesem letzten Video über das Projekt

3
00:00:05,210 --> 00:00:08,360
‫zeigen wollte, ist, dass wir tatsächlich unser eigenes Modul

4
00:00:08,360 --> 00:00:12,137
‫erstellen und etwas daraus exportieren können, wie zum Beispiel eine Funktion.

5
00:00:12,137 --> 00:00:16,710
‫Importieren Sie diese Funktion dann in ein anderes Modul und

6
00:00:16,710 --> 00:00:19,150
‫verwenden Sie diese Funktion dort.

7
00:00:19,150 --> 00:00:22,653
‫Okay, und das werden wir in diesem Vortrag tun.

8
00:00:24,490 --> 00:00:26,680
‫Nehmen wir also an, wir hätten

9
00:00:26,680 --> 00:00:28,816
‫tatsächlich eine Reihe verschiedener JavaScript-Dateien,

10
00:00:28,816 --> 00:00:32,613
‫in denen wir diese Funktion zum Ersetzen von Vorlagen verwendet haben.

11
00:00:34,240 --> 00:00:37,710
‫Im Moment verwenden wir es also nur hier im Index. js.

12
00:00:37,710 --> 00:00:41,240
‫Wir verwenden es zweimal und deshalb haben wir eine Funktion, aber stellen

13
00:00:41,240 --> 00:00:43,062
‫Sie sich vor, wir möchten

14
00:00:43,062 --> 00:00:44,960
‫diese Funktion in mehreren Dateien verwenden.

15
00:00:44,960 --> 00:00:48,930
‫Okay, wir können also ein neues Modul erstellen und

16
00:00:48,930 --> 00:00:50,790
‫diese Funktion daraus

17
00:00:50,790 --> 00:00:53,210
‫exportieren und dann wieder hier importieren.

18
00:00:53,210 --> 00:00:55,330
‫Das erste, was Sie wissen

19
00:00:55,330 --> 00:00:56,900
‫müssen, ist, dass

20
00:00:56,900 --> 00:01:01,420
‫in Nodejs tatsächlich jede einzelne Datei als Modul behandelt wird.

21
00:01:01,420 --> 00:01:06,210
‫Und so dieser Index. js ist hier eigentlich auch

22
00:01:06,210 --> 00:01:08,780
‫ein Modul, das in diesem Fall

23
00:01:08,780 --> 00:01:11,663
‫andere Module und insbesondere diese drei importiert.

24
00:01:13,610 --> 00:01:16,090
‫Lassen Sie uns jetzt hier einen neuen Ordner

25
00:01:16,090 --> 00:01:17,800
‫erstellen, den ich Module nenne,

26
00:01:20,120 --> 00:01:21,105
‫und dann

27
00:01:21,105 --> 00:01:23,050
‫hier drinnen eine Datei erstellen, die

28
00:01:23,050 --> 00:01:26,707
‫unser Modul namens replaceTemplate sein wird. js.

29
00:01:31,050 --> 00:01:34,793
‫Okay, also greifen wir hier zu unserer Funktion.

30
00:01:37,220 --> 00:01:39,000
‫Schneiden Sie es hier aus

31
00:01:40,730 --> 00:01:42,863
‫und fügen Sie es einfach hier ein.

32
00:01:44,420 --> 00:01:48,560
‫Alles klar, wie exportieren wir diese Funktion nun eigentlich

33
00:01:48,560 --> 00:01:50,350
‫aus diesem Modul?

34
00:01:50,350 --> 00:01:53,110
‫Nun, es gibt verschiedene Möglichkeiten, etwas aus

35
00:01:53,110 --> 00:01:54,166
‫einem Modul

36
00:01:54,166 --> 00:01:56,040
‫zu exportieren, und wir werden

37
00:01:56,040 --> 00:01:59,013
‫später in einem anderen Abschnitt ausführlich darüber sprechen.

38
00:01:59,013 --> 00:01:59,904
‫Aber im

39
00:01:59,904 --> 00:02:04,303
‫Moment verwenden wir nur das Modul. Export.

40
00:02:08,020 --> 00:02:09,000
‫In jedem

41
00:02:09,000 --> 00:02:12,950
‫Modul haben wir also Zugriff auf eine Variable namens module

42
00:02:12,950 --> 00:02:16,360
‫und können dort die Eigenschaft des Exports festlegen.

43
00:02:16,360 --> 00:02:20,230
‫Und das setzen wir dann auf das, was wir exportieren wollen.

44
00:02:20,230 --> 00:02:22,943
‫In diesem Fall ist das nur diese Funktion.

45
00:02:24,130 --> 00:02:25,940
‫Also werden wir

46
00:02:27,660 --> 00:02:28,940
‫diesen Namen

47
00:02:28,940 --> 00:02:33,940
‫loswerden und im Grunde ordnen wir dieser Export-Eigenschaft auf dem Modul

48
00:02:34,151 --> 00:02:36,423
‫einfach diese anonyme Funktion zu.

49
00:02:37,700 --> 00:02:39,050
‫Ich sagte anonym,

50
00:02:39,050 --> 00:02:42,110
‫weil diese Funktion im Moment keinen Namen hat.

51
00:02:42,110 --> 00:02:44,184
‫Es ist also

52
00:02:44,184 --> 00:02:47,867
‫nur eine anonyme Funktion, die dieser

53
00:02:47,867 --> 00:02:50,750
‫Exporteigenschaft des Modulobjekts zugewiesen wird.

54
00:02:50,750 --> 00:02:53,500
‫Auch dies ist ein Objekt, auf

55
00:02:53,500 --> 00:02:56,820
‫das wir in jedem einzelnen Nodejs-Modul Zugriff haben.

56
00:02:56,820 --> 00:02:58,250
‫Und wie das hinter

57
00:02:58,250 --> 00:02:59,410
‫den Kulissen

58
00:02:59,410 --> 00:03:02,020
‫tatsächlich passiert, erfahren Sie später noch einmal.

59
00:03:02,020 --> 00:03:02,853
‫Aber für

60
00:03:02,853 --> 00:03:04,050
‫den Moment verwenden wir es

61
00:03:04,050 --> 00:03:07,070
‫einfach und machen uns keine Sorgen darüber, warum es so funktioniert.

62
00:03:07,070 --> 00:03:10,750
‫Dies exportiert also diese Funktion aus dem Modul.

63
00:03:10,750 --> 00:03:14,423
‫Gehen wir einfach zum Index. js und importieren Sie es.

64
00:03:15,510 --> 00:03:19,410
‫Und Importe erfolgen normalerweise immer am Anfang der Datei

65
00:03:19,410 --> 00:03:21,400
‫und nach den Kernmodulen.

66
00:03:21,400 --> 00:03:23,100
‫Zuerst haben wir die

67
00:03:23,100 --> 00:03:25,462
‫Kernmodule und dann unsere eigenen Module.

68
00:03:25,462 --> 00:03:30,462
‫Wir werden es benötigen und dann unser eigenes Modul, das

69
00:03:30,890 --> 00:03:32,640
‫ist dot ...

70
00:03:32,640 --> 00:03:34,534
‫Und denken Sie daran,

71
00:03:34,534 --> 00:03:39,534
‫dass in der Anforderungsfunktion der Punkt tatsächlich den aktuellen Standort dieses Moduls bedeutet.

72
00:03:39,725 --> 00:03:43,660
‫Denken Sie also daran, als wir hier über die Variable

73
00:03:43,660 --> 00:03:48,330
‫dir name gesprochen haben, die normalerweise auf den Ordner des Moduls verweist.

74
00:03:48,330 --> 00:03:50,860
‫Aber denken Sie in diesem Fall in der

75
00:03:50,860 --> 00:03:52,678
‫require-Funktion daran, dass es eine

76
00:03:52,678 --> 00:03:55,567
‫Ausnahme gibt, bei der dieser Punkt tatsächlich auf die Position

77
00:03:55,567 --> 00:03:57,740
‫zeigt, an der sich dieses Modul befindet.

78
00:03:57,740 --> 00:03:58,660
‫Und das

79
00:03:58,660 --> 00:04:00,960
‫ist im Moment dieser Stammordner hier.

80
00:04:00,960 --> 00:04:04,410
‫Von hier aus gehen wir also

81
00:04:05,660 --> 00:04:09,333
‫zu Modulen und dort haben wir replaceTemplate.

82
00:04:12,480 --> 00:04:13,313
‫Und

83
00:04:13,313 --> 00:04:15,220
‫wie bei den anderen Modulen brauchen

84
00:04:15,220 --> 00:04:17,193
‫wir die . js.

85
00:04:18,670 --> 00:04:22,700
‫Das wird jetzt zurückgeben, was wir hier mit Modul

86
00:04:22,700 --> 00:04:24,929
‫exportiert haben. Exporte.

87
00:04:24,929 --> 00:04:28,321
‫Was wir hier haben, dieser

88
00:04:28,321 --> 00:04:33,321
‫Code, diese Funktion, wird aus diesem Anforderungsfunktionsaufruf exportiert.

89
00:04:33,370 --> 00:04:35,620
‫Und so können wir das jetzt in einer beliebigen

90
00:04:35,620 --> 00:04:37,870
‫Variablen speichern und ihr einen gewünschten Namen geben.

91
00:04:37,870 --> 00:04:40,460
‫Wir könnten es also einfach X nennen, wenn wir

92
00:04:40,460 --> 00:04:42,850
‫wollten oder wirklich wie immer wir wollten.

93
00:04:42,850 --> 00:04:45,960
‫Aber stattdessen gebe ich ihm nur diesen Namen, den

94
00:04:45,960 --> 00:04:47,420
‫wir hier schon

95
00:04:47,420 --> 00:04:50,670
‫hatten, damit ich meinen Code hier nicht ändern muss.

96
00:04:50,670 --> 00:04:53,770
‫Also replaceTemplate ist der Name, den ich

97
00:04:53,770 --> 00:04:56,160
‫dieser Variable geben möchte, die jetzt

98
00:04:56,160 --> 00:04:58,040
‫diese Funktion ist.

99
00:04:58,040 --> 00:04:59,580
‫Und so haben

100
00:04:59,580 --> 00:05:01,900
‫wir etwas aus einem Modul exportiert

101
00:05:01,900 --> 00:05:04,203
‫und in ein anderes importiert.

102
00:05:05,689 --> 00:05:09,941
‫Wenn wir unseren Server jetzt neu

103
00:05:09,941 --> 00:05:13,900
‫starten, sollte alles noch funktionieren.

104
00:05:13,900 --> 00:05:15,000
‫Aber das tut es tatsächlich nicht.

105
00:05:15,000 --> 00:05:18,300
‫Wir haben hier einen Fehler.

106
00:05:18,300 --> 00:05:20,920
‫Und es sagt, es kann das Modul nicht finden.

107
00:05:20,920 --> 00:05:23,630
‫Und das liegt daran, dass ich dumm genug war, diesen

108
00:05:23,630 --> 00:05:27,150
‫Ordner hier Module zu nennen. js.

109
00:05:27,150 --> 00:05:28,600
‫Das tut mir leid.

110
00:05:28,600 --> 00:05:29,611
‫Dieser

111
00:05:29,611 --> 00:05:32,363
‫soll natürlich nur Module heißen.

112
00:05:34,270 --> 00:05:37,350
‫Und deshalb gab es mir hier nicht die automatische Vervollständigung.

113
00:05:37,350 --> 00:05:39,194
‫Ich habe mich gefragt, warum das so ist.

114
00:05:39,194 --> 00:05:40,973
‫Und jetzt wissen wir es.

115
00:05:42,100 --> 00:05:43,540
‫Wenn es bei Ihnen

116
00:05:43,540 --> 00:05:45,119
‫nicht funktioniert, ändern Sie einfach

117
00:05:45,119 --> 00:05:49,413
‫den Namen dieses Ordners hier und dann sollte alles passen und funktionieren, wie es sollte.

118
00:05:50,730 --> 00:05:55,730
‫Lass uns neu laden und es ersetzt immer noch alles wie es sollte.

119
00:05:56,160 --> 00:05:57,716
‫Hier natürlich das gleiche.

120
00:05:57,716 --> 00:06:02,716
‫Und so ja, wir sind jetzt mit diesem Projekt fertig.

121
00:06:03,630 --> 00:06:06,380
‫Gratulation gut gemacht.

122
00:06:06,380 --> 00:06:09,974
‫Sie sind auf einem guten Weg, Nodejs zu lernen.

123
00:06:09,974 --> 00:06:11,500
‫Im Rest des Abschnitts

124
00:06:11,500 --> 00:06:12,770
‫werden wir

125
00:06:12,770 --> 00:06:16,510
‫nun ein wenig über den Knotenpaketmanager oder npm sprechen.

126
00:06:16,510 --> 00:06:18,380
‫Also werden wir ein bisschen

127
00:06:18,380 --> 00:06:19,770
‫an diesem Projekt

128
00:06:19,770 --> 00:06:21,786
‫weiterarbeiten, aber keine wirklichen Funktionen hinzufügen.

129
00:06:21,786 --> 00:06:24,890
‫Wie auch immer, wir sehen uns im nächsten Video,

130
00:06:24,890 --> 00:06:27,973
‫in dem wir über npm sprechen werden.

