﻿1
00:00:01,220 --> 00:00:02,890
‫Kursleiter: Behandeln wir nun

2
00:00:02,890 --> 00:00:06,140
‫den Fehler, der auftritt, wenn wir versuchen, doppelte

3
00:00:06,140 --> 00:00:09,633
‫Felder für Felder zu erstellen, die eigentlich eindeutig sein sollen.

4
00:00:11,110 --> 00:00:12,210
‫Denken Sie also daran,

5
00:00:12,210 --> 00:00:13,940
‫dass dies die Art von Fehler ist,

6
00:00:13,940 --> 00:00:14,900
‫die wir erhalten.

7
00:00:14,900 --> 00:00:16,673
‫Wir haben also versucht,

8
00:00:16,673 --> 00:00:19,000
‫eine neue Tour mit einem bereits vorhandenen

9
00:00:19,000 --> 00:00:21,550
‫Namen zu erstellen und die Namensfelder sollen

10
00:00:21,550 --> 00:00:23,670
‫eindeutig sein und erhalten diesen Fehler.

11
00:00:23,670 --> 00:00:25,250
‫Dieser Fehler hier

12
00:00:25,250 --> 00:00:27,210
‫hat keine Namenseigenschaft, okay?

13
00:00:27,210 --> 00:00:29,071
‫Und das liegt daran, dass es, wie

14
00:00:29,071 --> 00:00:30,910
‫bereits erwähnt, eigentlich kein Fehler ist, der

15
00:00:30,910 --> 00:00:32,720
‫von einem Mungo verursacht wird.

16
00:00:32,720 --> 00:00:35,000
‫Aber stattdessen wirklich durch

17
00:00:35,000 --> 00:00:37,830
‫den zugrunde liegenden MongoDB-Treiber, okay?

18
00:00:37,830 --> 00:00:39,140
‫Um

19
00:00:39,140 --> 00:00:40,734
‫diesen Fehler

20
00:00:40,734 --> 00:00:45,580
‫zu identifizieren, verwenden wir diesen 11.000-Code hier.

21
00:00:45,580 --> 00:00:46,413
‫Gut?

22
00:00:47,970 --> 00:00:51,263
‫Wir haben also einen Handler für den CastError.

23
00:00:51,263 --> 00:00:54,190
‫Lassen Sie uns nun eine für den Fall erstellen, dass wir

24
00:00:54,190 --> 00:00:55,823
‫diesen Fehler haben. Code,. Code gleich 11.000.

25
00:00:56,837 --> 00:01:00,673
‫In diesem Fall sollten alle Fehler gleich den Fehlerrückgaben

26
00:01:01,640 --> 00:01:04,138
‫von handleDuplicateFields sein und wieder füge

27
00:01:04,138 --> 00:01:08,833
‫ich hier DB hinzu, nur damit wir wissen, dass dies mit unserer

28
00:01:10,610 --> 00:01:12,610
‫Datenbank zu tun hat.

29
00:01:12,610 --> 00:01:15,983
‫Gut?

30
00:01:16,940 --> 00:01:18,160
‫Und, also lassen Sie uns diese Funktion nun tatsächlich erstellen.

31
00:01:18,160 --> 00:01:22,383
‫Und jetzt ist die Nachricht, die wir senden werden,

32
00:01:29,470 --> 00:01:32,900
‫diese, also lasst uns sie hier erstellen.

33
00:01:34,900 --> 00:01:37,470
‫Und deshalb möchte ich, dass es sagt, Feldwert duplizieren,

34
00:01:37,470 --> 00:01:38,993
‫und dann den Namen

35
00:01:43,220 --> 00:01:46,090
‫dieses Werts hören, also setzen wir das jetzt auf x.

36
00:01:46,090 --> 00:01:49,503
‫Das generieren wir etwas später.

37
00:01:50,760 --> 00:01:53,160
‫Bitte verwenden Sie daher einen anderen Wert.

38
00:01:53,160 --> 00:01:57,113
‫Gut?

39
00:01:58,170 --> 00:01:59,030
‫In dem Fall, den

40
00:01:59,030 --> 00:02:01,120
‫wir gerade gesehen haben, sollte dieses x hier Waldwanderer genannt werden.

41
00:02:01,120 --> 00:02:04,093
‫Im Grunde versuchen wir also,

42
00:02:05,730 --> 00:02:07,410
‫aus dieser

43
00:02:07,410 --> 00:02:11,090
‫Fehlermeldungsfolge hier Folgendes herauszuholen: "The Forest Hiker. "Das ist also der doppelte Wert, den wir an

44
00:02:11,090 --> 00:02:13,577
‫den Client

45
00:02:14,569 --> 00:02:16,280
‫senden möchten, damit er

46
00:02:16,280 --> 00:02:18,040
‫ihn jetzt korrigieren und

47
00:02:18,040 --> 00:02:20,100
‫einen anderen Namen erstellen kann.

48
00:02:20,100 --> 00:02:22,040
‫Also, wie können wir dieses Stück der

49
00:02:22,040 --> 00:02:23,595
‫Schnur hier eigentlich extrahieren?

50
00:02:23,595 --> 00:02:26,120
‫Nun, wir werden einen regulären Ausdruck verwenden, um

51
00:02:26,120 --> 00:02:28,520
‫im Grunde, wie ich gerade sagte, den Text

52
00:02:28,520 --> 00:02:30,640
‫zu finden, der zwischen Anführungszeichen steht.

53
00:02:30,640 --> 00:02:33,170
‫Denn hier in dieser Zeichenfolge brauchen wir nur

54
00:02:33,170 --> 00:02:35,520
‫diese Anführungszeichen, um diesen Text hier wirklich

55
00:02:35,520 --> 00:02:37,670
‫zu identifizieren, um ihn zu finden.

56
00:02:37,670 --> 00:02:40,460
‫Gut?

57
00:02:40,460 --> 00:02:41,293
‫Und wie Sie

58
00:02:41,293 --> 00:02:43,010
‫bereits wissen, können reguläre Ausdrücke wirklich schwierig sein.

59
00:02:43,010 --> 00:02:45,670
‫Und so googele ich sie normalerweise einfach und lass mich

60
00:02:45,670 --> 00:02:47,840
‫dir zeigen, wie ich das tatsächlich mache.

61
00:02:47,840 --> 00:02:50,273
‫In diesem Fall würde ich einfach nach Übereinstimmungstext

62
00:02:53,280 --> 00:02:55,250
‫für reguläre Ausdrücke zwischen Anführungszeichen suchen.

63
00:02:55,250 --> 00:03:00,250
‫Und dann stimmt meistens das erste Ergebnis.

64
00:03:05,620 --> 00:03:08,660
‫Und hier unten haben wir das Ergebnis und

65
00:03:08,660 --> 00:03:11,250
‫können einfach diesen regulären Ausdruck verwenden.

66
00:03:11,250 --> 00:03:14,698
‫Jetzt sehe ich, dass wir das hier unten haben.

67
00:03:14,698 --> 00:03:17,150
‫Dies funktioniert auch und ist einfacher zu lesen.

68
00:03:17,150 --> 00:03:19,270
‫Und es hat eine Menge Stimmen und

69
00:03:19,270 --> 00:03:21,100
‫so können wir einfach dieses verwenden.

70
00:03:21,100 --> 00:03:23,280
‫Das sollte also auch funktionieren.

71
00:03:23,280 --> 00:03:25,290
‫Also kopieren wir es

72
00:03:25,290 --> 00:03:29,870
‫und gehen zurück zu unserem Code und sagen, dass unser Wert,

73
00:03:29,870 --> 00:03:32,493
‫also const value, gleich dem Fehler ist. ermsg, also denken Sie daran, dass dies der

74
00:03:34,440 --> 00:03:37,663
‫Name der Eigenschaft war.

75
00:03:40,990 --> 00:03:45,990
‫Also, errmsg. Das liegt also wieder daran, dass dies ein Fehler ist, der von Mongo erstellt

76
00:03:46,000 --> 00:03:48,820
‫wurde, und daher

77
00:03:48,820 --> 00:03:51,010
‫handelt es sich um leicht unterschiedliche Namen.

78
00:03:51,010 --> 00:03:53,383
‫Okay?

79
00:03:54,410 --> 00:03:55,243
‫Wir haben also

80
00:03:55,243 --> 00:03:57,890
‫diesen String und hier wollen wir unseren regulären Ausdruck abgleichen.

81
00:03:57,890 --> 00:03:59,973
‫Also, match, und dann steht in

82
00:04:02,140 --> 00:04:04,260
‫JavaScript ein regulärer Ausdruck immer zwischen zwei Schrägstrichen.

83
00:04:04,260 --> 00:04:07,623
‫Dann füge es hier ein, was wir gerade von

84
00:04:08,530 --> 00:04:12,220
‫Stack Overflow bekommen haben, und lass uns einen Blick darauf werfen.

85
00:04:14,450 --> 00:04:16,000
‫Wir laufen also bereits in der Produktion.

86
00:04:22,260 --> 00:04:24,600
‫Im Moment werden wir keine Antwort zurücksenden.

87
00:04:24,600 --> 00:04:27,340
‫Jetzt möchte ich mir nur noch den Wert anschauen.

88
00:04:27,340 --> 00:04:30,203
‫Also, wenn ich das jetzt schicke, bekommen wir hier diese seltsame Antwort.

89
00:04:31,870 --> 00:04:36,870
‫Das liegt wiederum daran, dass wir keine Fehler senden.

90
00:04:37,870 --> 00:04:40,910
‫Aber im Moment interessierte mich wirklich nur der Wert.

91
00:04:40,910 --> 00:04:44,213
‫Und das, was wir jetzt hier im Protokoll sehen,

92
00:04:45,540 --> 00:04:46,660
‫ist dieser Wert.

93
00:04:46,660 --> 00:04:48,980
‫Und eigentlich ist es ein Array.

94
00:04:48,980 --> 00:04:51,163
‫Aber was uns interessiert, ist eigentlich diese Saite hier.

95
00:04:52,030 --> 00:04:55,830
‫Es stimmte also tatsächlich mit dem gesamten Text überein, der sich

96
00:04:55,830 --> 00:04:58,550
‫zwischen den Zeichenfolgen befand, und wir können also

97
00:04:58,550 --> 00:05:00,670
‫sagen, dass es funktioniert hat.

98
00:05:00,670 --> 00:05:01,970
‫Unser regulärer Ausdruck hat also funktioniert.

99
00:05:03,680 --> 00:05:06,720
‫Jetzt müssen wir nur noch sagen, dass wir das erste

100
00:05:06,720 --> 00:05:08,370
‫Element dieses Arrays haben wollen.

101
00:05:08,370 --> 00:05:10,970
‫Also Element Null.

102
00:05:10,970 --> 00:05:12,960
‫Und jetzt gehen wir tatsächlich

103
00:05:12,960 --> 00:05:16,280
‫weiter und geben einen neuen AppError zurück, also einen

104
00:05:16,280 --> 00:05:20,590
‫neuen AppError, fügen Sie die Nachricht ein und wieder den 400-Statuscode

105
00:05:20,590 --> 00:05:22,560
‫für eine schlechte Anfrage.

106
00:05:22,560 --> 00:05:25,993
‫Und so versuchen wir es jetzt noch einmal.

107
00:05:27,999 --> 00:05:29,570
‫Auch hier führen wir immer noch

108
00:05:29,570 --> 00:05:31,820
‫eine Produktion durch und der Code sollte jetzt ausgeführt werden.

109
00:05:31,820 --> 00:05:34,550
‫Und natürlich haben wir versucht, unser x zu ersetzen.

110
00:05:34,550 --> 00:05:37,423
‫Natürlich wollen wir jetzt unseren Wert hier.

111
00:05:40,400 --> 00:05:42,613
‫Und so erhalten wir jetzt

112
00:05:46,750 --> 00:05:51,110
‫den doppelten Feldwert "The Forest Hiker. " Perfekt.

113
00:05:51,110 --> 00:05:51,970
‫Und jetzt,

114
00:05:51,970 --> 00:05:54,140
‫als nächstes, im nächsten Video werden wir

115
00:05:54,140 --> 00:05:57,330
‫dann den letzten der drei Fehler behandeln, die die Validierungsfehler sind.

