﻿1
00:00:01,220 --> 00:00:03,030
‫Sprecher: Lassen Sie uns nun die

2
00:00:03,030 --> 00:00:06,620
‫Implementierung der verschachtelten Route verbessern, die wir in der letzten Vorlesung codiert haben.

3
00:00:06,620 --> 00:00:07,500
‫Und

4
00:00:07,500 --> 00:00:11,213
‫dafür werden wir eine spezielle erweiterte Express-Funktion verwenden.

5
00:00:12,840 --> 00:00:15,070
‫Wie Sie sich erinnern,

6
00:00:15,070 --> 00:00:18,920
‫haben wir im letzten Video eine einfache verschachtelte

7
00:00:18,920 --> 00:00:21,860
‫Post-Route implementiert, also nur diese hier.

8
00:00:21,860 --> 00:00:25,240
‫Rechts. Dies bedeutet, dass

9
00:00:25,240 --> 00:00:27,590
‫die Bewertungsroute innerhalb der Tourroute liegt.

10
00:00:27,590 --> 00:00:32,130
‫Und wieder, weil Bewertungen gewissermaßen zu Touren gehören.

11
00:00:32,130 --> 00:00:32,963
‫Rechts?

12
00:00:32,963 --> 00:00:36,920
‫Dies ist also im API-Design sehr üblich.

13
00:00:36,920 --> 00:00:39,950
‫Das Problem bei dieser Implementierung ist, dass sie

14
00:00:39,950 --> 00:00:41,800
‫natürlich etwas unordentlich ist.

15
00:00:41,800 --> 00:00:45,420
‫Und das liegt daran, dass wir im Tourrouter eine Route zum

16
00:00:45,420 --> 00:00:47,090
‫Erstellen einer Bewertung hinterlegt haben.

17
00:00:47,090 --> 00:00:50,430
‫Ganz einfach, weil eine Route mit einer Slash-Tour beginnt.

18
00:00:50,430 --> 00:00:51,950
‫Das ist also

19
00:00:51,950 --> 00:00:53,500
‫etwas verwirrend, und was

20
00:00:53,500 --> 00:00:56,480
‫auch verwirrend ist, ist, dass wir hier, auch

21
00:00:56,480 --> 00:00:59,160
‫in unserer Testroute, etwas sehr Ähnliches haben.

22
00:00:59,160 --> 00:01:01,203
‫Also im Grunde das hier.

23
00:01:01,203 --> 00:01:04,840
‫Wenn wir also eine neue Überprüfung ohne die verschachtelte

24
00:01:04,840 --> 00:01:08,450
‫Route erstellen, ist dieser Codeabschnitt hier tatsächlich genau derselbe

25
00:01:08,450 --> 00:01:10,600
‫wie dieser. Rechts?

26
00:01:10,600 --> 00:01:12,940
‫Abgesehen davon, dass dies etwas verwirrend

27
00:01:12,940 --> 00:01:16,020
‫ist, haben wir also auch doppelten Code, den wir

28
00:01:16,020 --> 00:01:19,910
‫an zwei separaten Stellen pflegen müssten, falls wir etwas ändern wollten.

29
00:01:19,910 --> 00:01:23,120
‫Und das ist wiederum eine sehr schlechte Praxis.

30
00:01:23,120 --> 00:01:26,600
‫Lassen Sie uns dies nun mit einer erweiterten

31
00:01:26,600 --> 00:01:28,410
‫Express-Funktion namens mergeParams beheben.

32
00:01:28,410 --> 00:01:31,270
‫Entfernen wir also zuerst diesen

33
00:01:31,270 --> 00:01:34,690
‫Code hier, der nicht wirklich zum Tourrouter gehört.

34
00:01:34,690 --> 00:01:38,500
‫Als nächstes werden wir den Testrouter tatsächlich

35
00:01:38,500 --> 00:01:40,840
‫in diesen Tourrouter importieren.

36
00:01:40,840 --> 00:01:41,740
‫Okay?

37
00:01:41,740 --> 00:01:44,460
‫Im Moment importieren wir also den

38
00:01:44,460 --> 00:01:47,330
‫Review-Controller, aber eigentlich wollen wir den Review-Router.

39
00:01:47,330 --> 00:01:49,220
‫Also lasst uns dieses hier

40
00:01:49,220 --> 00:01:51,963
‫loswerden, und eigentlich werde ich es ganz löschen.

41
00:01:53,090 --> 00:01:57,923
‫Und jetzt der Review-Router.

42
00:02:05,500 --> 00:02:06,333
‫Und okay.

43
00:02:07,410 --> 00:02:12,100
‫Also, lassen Sie uns diesen Code tatsächlich holen und ihn hier

44
00:02:12,100 --> 00:02:13,480
‫oben platzieren,

45
00:02:13,480 --> 00:02:15,903
‫nur damit wir sehen, was wir

46
00:02:17,140 --> 00:02:19,730
‫tun, denn wir werden tatsächlich hier

47
00:02:19,730 --> 00:02:21,620
‫oben etwas neuen Code erstellen.

48
00:02:21,620 --> 00:02:24,393
‫Also sagen wir hier

49
00:02:26,781 --> 00:02:29,270
‫Router. verwenden.

50
00:02:29,270 --> 00:02:32,060
‫Und so werden wir im Grunde sagen, dass

51
00:02:32,060 --> 00:02:33,890
‫dieser Tourrouter den Review-Router

52
00:02:33,890 --> 00:02:37,373
‫verwenden sollte, falls er jemals auf eine solche Route stößt.

53
00:02:43,070 --> 00:02:48,670
‫Und Routen überprüfen.

54
00:02:48,670 --> 00:02:50,600
‫Habe ich es Routen oder Router genannt?

55
00:02:50,600 --> 00:02:52,083
‫Sollte Router heißen.

56
00:02:53,630 --> 00:02:54,463
‫Okay?

57
00:02:55,690 --> 00:02:58,010
‫Denken Sie also daran, dass ein Router selbst

58
00:02:58,010 --> 00:02:59,730
‫eigentlich nur eine Middleware ist.

59
00:02:59,730 --> 00:03:02,580
‫Und so können wir die use-Methode darauf verwenden

60
00:03:02,580 --> 00:03:05,200
‫und dann sagen, dass wir für

61
00:03:05,200 --> 00:03:08,210
‫diese spezielle Route hier stattdessen den Review-Router verwenden möchten.

62
00:03:08,210 --> 00:03:09,043
‫Okay?

63
00:03:09,043 --> 00:03:11,890
‫Und so ist dies eigentlich wieder die Montage eines Routers.

64
00:03:11,890 --> 00:03:14,300
‫Also, wenn du dir das anschaust, hier in

65
00:03:14,300 --> 00:03:15,870
‫der App. js,

66
00:03:15,870 --> 00:03:18,140
‫genau das haben wir getan.

67
00:03:18,140 --> 00:03:20,410
‫Also haben wir es gemacht. verwenden,

68
00:03:20,410 --> 00:03:22,090
‫dann die URL und

69
00:03:22,090 --> 00:03:23,430
‫dann den Router.

70
00:03:23,430 --> 00:03:25,040
‫Und hier ist

71
00:03:25,040 --> 00:03:27,340
‫das, was wir tun, genau dasselbe.

72
00:03:27,340 --> 00:03:30,360
‫Das ist also der Tourrouter, und so sagen wir

73
00:03:30,360 --> 00:03:33,250
‫gut, wenn Sie eine URL wie diese finden,

74
00:03:33,250 --> 00:03:36,010
‫dann verwenden Sie einfach den Review-Router.

75
00:03:36,010 --> 00:03:40,010
‫Und so, wenn wir jetzt eine URL wie diese

76
00:03:40,010 --> 00:03:44,700
‫haben, wird sie damit beginnen, dass sie hier in den Tourrouter

77
00:03:44,700 --> 00:03:47,963
‫gelangt, okay, weil sie wieder mit Slash-Touren

78
00:03:48,920 --> 00:03:49,753
‫beginnt,

79
00:03:49,753 --> 00:03:52,920
‫okay, also im Grunde wird sie in

80
00:03:52,920 --> 00:03:55,400
‫den Tourrouter umgeleitet, dann, wenn es

81
00:03:55,400 --> 00:03:57,800
‫den Tourrouter erreicht, wird diese

82
00:03:57,800 --> 00:04:02,370
‫URL hier abgeglichen und dann wieder in den Review-Router umgeleitet.

83
00:04:02,370 --> 00:04:04,300
‫Und so haben

84
00:04:04,300 --> 00:04:06,780
‫wir den Tourrouter und den

85
00:04:06,780 --> 00:04:09,300
‫Reviewrouter schön voneinander getrennt und entkoppelt.

86
00:04:09,300 --> 00:04:12,370
‫Aber jetzt fehlt tatsächlich noch ein

87
00:04:12,370 --> 00:04:15,170
‫Stück, weil dieser Review-Router hier

88
00:04:15,170 --> 00:04:19,410
‫gerade keinen Zugriff auf diesen Tour-ID-Parameter bekommt, okay.

89
00:04:19,410 --> 00:04:22,050
‫Und so müssen wir jetzt

90
00:04:22,050 --> 00:04:26,200
‫dem Review-Router auch hier den Zugriff auf diesen Parameter ermöglichen.

91
00:04:26,200 --> 00:04:29,980
‫Kommen wir nun zum Review-Router, okay.

92
00:04:29,980 --> 00:04:32,180
‫Hier kommen also die eingangs

93
00:04:33,264 --> 00:04:34,810
‫erwähnten medizinischen mergeParams

94
00:04:34,810 --> 00:04:35,943
‫ins Spiel.

95
00:04:38,030 --> 00:04:40,790
‫Also hier, im Express. Router-Funktion können wir

96
00:04:40,790 --> 00:04:43,010
‫einige Optionen angeben, und hier

97
00:04:43,010 --> 00:04:45,760
‫müssen wir nur mergeParams auf true

98
00:04:48,160 --> 00:04:49,170
‫setzen.

99
00:04:49,170 --> 00:04:50,440
‫Und das ist es.

100
00:04:50,440 --> 00:04:53,750
‫Aber wozu brauchen wir das hier eigentlich?

101
00:04:53,750 --> 00:04:55,780
‫Nun, es liegt daran,

102
00:04:55,780 --> 00:04:57,850
‫dass jeder Router standardmäßig nur

103
00:04:57,850 --> 00:05:01,780
‫Zugriff auf die Parameter seiner spezifischen Routen hat, richtig.

104
00:05:01,780 --> 00:05:06,720
‫Aber hier, in dieser Route, also in dieser URL für diesen

105
00:05:06,720 --> 00:05:09,930
‫Beitrag, gibt es natürlich tatsächlich keine Tour-ID.

106
00:05:09,930 --> 00:05:12,630
‫Aber wir möchten immer noch Zugriff auf

107
00:05:12,630 --> 00:05:16,050
‫die Tour-ID erhalten, die sich in diesem anderen Router befand, richtig.

108
00:05:16,050 --> 00:05:17,430
‫Also das hier.

109
00:05:17,430 --> 00:05:20,420
‫Um Zugriff auf diesen Parameter in diesem

110
00:05:20,420 --> 00:05:21,910
‫anderen Router

111
00:05:21,910 --> 00:05:25,570
‫zu erhalten, müssen wir die Parameter physisch zusammenführen, okay.

112
00:05:25,570 --> 00:05:29,270
‫Und das ist es, was mergeParams, auf true gesetzt, macht.

113
00:05:29,270 --> 00:05:32,663
‫Und jetzt, egal ob wir eine Route wie diese bekommen,

114
00:05:34,310 --> 00:05:36,853
‫kopieren wir sie einfach hierher. Auch hier

115
00:05:38,270 --> 00:05:41,383
‫ist es einfacher, sie mit einem Beispiel zu visualisieren.

116
00:05:42,280 --> 00:05:45,647
‫Also noch einmal, egal ob wir eine Route wie diese

117
00:05:48,380 --> 00:05:49,840
‫oder eine Route

118
00:05:49,840 --> 00:05:54,530
‫wie diese bekommen, es wird jetzt alles in diesem Handler hier landen, okay.

119
00:05:54,530 --> 00:05:58,130
‫Also am Ende im Grunde zu dieser Handler-Funktion.

120
00:05:58,130 --> 00:06:01,060
‫Und das funktioniert wieder, weil alle

121
00:06:01,060 --> 00:06:03,710
‫Routen, die hier mit diesem

122
00:06:03,710 --> 00:06:06,720
‫Muster beginnen, genau in dieser Codezeile

123
00:06:06,720 --> 00:06:09,960
‫hier auf diesen Router umgeleitet werden, okay.

124
00:06:09,960 --> 00:06:13,220
‫Also haben wir hier auf den Review-Router umgeleitet

125
00:06:13,220 --> 00:06:17,600
‫und dort wird es dann mit dieser genauen Route übereinstimmen,

126
00:06:17,600 --> 00:06:18,433
‫okay.

127
00:06:18,433 --> 00:06:19,990
‫Und dank Merge-Parametern

128
00:06:19,990 --> 00:06:22,310
‫erhalten wir dann Zugriff auf diese

129
00:06:22,310 --> 00:06:25,700
‫ID, die tatsächlich vom anderen Router zuvor stammt.

130
00:06:25,700 --> 00:06:26,940
‫Groß.

131
00:06:26,940 --> 00:06:28,843
‫Also lass uns hier einfach

132
00:06:29,870 --> 00:06:31,323
‫ein bisschen aufräumen, wirklich

133
00:06:32,260 --> 00:06:33,143
‫das hier loswerden,

134
00:06:34,230 --> 00:06:35,063
‫und

135
00:06:36,310 --> 00:06:38,560
‫lass es uns jetzt schnell ausprobieren.

136
00:06:38,560 --> 00:06:40,940
‫Also werde ich hier eine neue Rezension erstellen

137
00:06:42,100 --> 00:06:44,143
‫und diesmal ein anderes Tool ausprobieren.

138
00:06:47,180 --> 00:06:48,533
‫Also der Stadtwanderer.

139
00:06:51,160 --> 00:06:52,990
‫Und alles, was wir

140
00:06:52,990 --> 00:06:57,030
‫tun müssen, ist diese ID hier in der URL zu ändern, richtig.

141
00:06:57,030 --> 00:07:00,250
‫Also, die Wertung wird drei

142
00:07:00,250 --> 00:07:01,083
‫sein,

143
00:07:03,570 --> 00:07:07,190
‫und dann war es irgendwie okay.

144
00:07:07,190 --> 00:07:10,943
‫In Ordnung, und so wird diese Überprüfung weiterhin mit

145
00:07:11,960 --> 00:07:14,940
‫Jonas durchgeführt, also von diesem Konto aus,

146
00:07:14,940 --> 00:07:16,300
‫okay, denn das

147
00:07:16,300 --> 00:07:20,890
‫ist immer noch einer, der in diesem Moment eingeloggt ist, okay.

148
00:07:20,890 --> 00:07:21,963
‫Also, senden wir

149
00:07:23,160 --> 00:07:26,900
‫das, und tatsächlich erhalten wir hier die Tour, die wir gerade angegeben haben,

150
00:07:26,900 --> 00:07:28,383
‫und immer noch derselbe Benutzer.

151
00:07:30,110 --> 00:07:34,710
‫Das ist wieder nur um sicherzugehen, dass die Tour überprüft wird, um zu

152
00:07:34,710 --> 00:07:37,110
‫sehen, ob sie jetzt diese Bewertung bekommt

153
00:07:37,110 --> 00:07:39,500
‫und ja, sie hat es getan.

154
00:07:39,500 --> 00:07:42,710
‫Und so funktioniert dieser Merge-Parameter-Trick, den wir gerade

155
00:07:42,710 --> 00:07:44,650
‫implementiert haben, tatsächlich gut

156
00:07:44,650 --> 00:07:46,280
‫und wie beabsichtigt.

157
00:07:46,280 --> 00:07:48,790
‫Um dies jetzt noch besser in Aktion zu

158
00:07:48,790 --> 00:07:50,560
‫sehen, werden wir die Henry-Funktion anpassen,

159
00:07:50,560 --> 00:07:53,420
‫um alle Bewertungen für eine bestimmte Tour direkt im nächsten

160
00:07:53,420 --> 00:07:54,793
‫Video zu erhalten.

