﻿1
00:00:01,220 --> 00:00:02,890
‫Istruttore: Gestiamo ora l'errore

2
00:00:02,890 --> 00:00:06,140
‫che si verifica quando proviamo a creare campi

3
00:00:06,140 --> 00:00:09,633
‫duplicati per campi che in realtà dovrebbero essere univoci.

4
00:00:11,110 --> 00:00:12,210
‫E quindi, ricorda,

5
00:00:12,210 --> 00:00:13,940
‫questo è il tipo di errore

6
00:00:13,940 --> 00:00:14,900
‫che otteniamo.

7
00:00:14,900 --> 00:00:16,673
‫Quindi, abbiamo provato a creare

8
00:00:16,673 --> 00:00:19,000
‫un nuovo tour con un nome già

9
00:00:19,000 --> 00:00:21,550
‫esistente e i campi del nome dovrebbero essere

10
00:00:21,550 --> 00:00:23,670
‫univoci e quindi otteniamo questo errore.

11
00:00:23,670 --> 00:00:25,250
‫Ora questo errore qui

12
00:00:25,250 --> 00:00:27,210
‫non ha una proprietà name, ok?

13
00:00:27,210 --> 00:00:29,071
‫E questo perché, come ho detto

14
00:00:29,071 --> 00:00:30,910
‫prima, in realtà non è un

15
00:00:30,910 --> 00:00:32,720
‫errore causato da una mangusta.

16
00:00:32,720 --> 00:00:35,000
‫Ma invece, davvero,

17
00:00:35,000 --> 00:00:37,830
‫dal driver MongoDB sottostante, ok?

18
00:00:37,830 --> 00:00:39,140
‫Quindi, quello

19
00:00:39,140 --> 00:00:40,734
‫che faremo per

20
00:00:40,734 --> 00:00:45,580
‫identificare questo errore è usare questo 11.000 codice qui.

21
00:00:45,580 --> 00:00:46,413
‫Tutto ok?

22
00:00:47,970 --> 00:00:51,263
‫Quindi, abbiamo un gestore per CastError.

23
00:00:51,263 --> 00:00:54,190
‫Ora creiamone uno per il caso in cui

24
00:00:54,190 --> 00:00:55,823
‫abbiamo quell'errore. codice,. codice pari a 11.000.

25
00:00:56,837 --> 00:01:00,673
‫Quindi, in tal caso, tutti gli errori dovrebbero essere uguali

26
00:01:01,640 --> 00:01:04,138
‫agli errori restituiti da handleDuplicateFields e ancora,

27
00:01:04,138 --> 00:01:08,833
‫sto aggiungendo DB qui solo per sapere che questo ha a che fare

28
00:01:10,610 --> 00:01:12,610
‫con il nostro database.

29
00:01:12,610 --> 00:01:15,983
‫Tutto ok?

30
00:01:16,940 --> 00:01:18,160
‫E quindi ora creiamo effettivamente questa funzione.

31
00:01:18,160 --> 00:01:22,383
‫E ora, il messaggio che invieremo è

32
00:01:29,470 --> 00:01:32,900
‫questo, quindi creiamolo qui.

33
00:01:34,900 --> 00:01:37,470
‫E quindi voglio che dica, Duplica il valore del

34
00:01:37,470 --> 00:01:38,993
‫campo, e poi ascolti il

35
00:01:43,220 --> 00:01:46,090
‫nome di quel valore, quindi mettiamolo su x per ora.

36
00:01:46,090 --> 00:01:49,503
‫Lo genereremo un po' più tardi.

37
00:01:50,760 --> 00:01:53,160
‫Quindi per favore usa un altro valore.

38
00:01:53,160 --> 00:01:57,113
‫Tutto ok?

39
00:01:58,170 --> 00:01:59,030
‫E quindi nel caso

40
00:01:59,030 --> 00:02:01,120
‫che abbiamo appena visto, questa x qui dovrebbe essere chiamata Forest Hiker.

41
00:02:01,120 --> 00:02:04,093
‫Quindi, in pratica, quello che stiamo cercando di

42
00:02:05,730 --> 00:02:07,410
‫ottenere da questa stringa

43
00:02:07,410 --> 00:02:11,090
‫di messaggio di errore qui è questo, "The Forest Hiker. " Quindi questo è il valore duplicato che vogliamo

44
00:02:11,090 --> 00:02:13,577
‫inviare al

45
00:02:14,569 --> 00:02:16,280
‫cliente in modo

46
00:02:16,280 --> 00:02:18,040
‫che ora possa correggerlo

47
00:02:18,040 --> 00:02:20,100
‫e creare un altro nome.

48
00:02:20,100 --> 00:02:22,040
‫Quindi, come possiamo effettivamente estrarre questo

49
00:02:22,040 --> 00:02:23,595
‫pezzo di corda qui?

50
00:02:23,595 --> 00:02:26,120
‫Bene, useremo un'espressione regolare per, fondamentalmente,

51
00:02:26,120 --> 00:02:28,520
‫come ho appena detto, trovare

52
00:02:28,520 --> 00:02:30,640
‫il testo tra virgolette.

53
00:02:30,640 --> 00:02:33,170
‫Perché qui in questa stringa, tutto ciò che

54
00:02:33,170 --> 00:02:35,520
‫dobbiamo davvero identificare questo testo qui, quindi

55
00:02:35,520 --> 00:02:37,670
‫per trovarlo, sono queste virgolette.

56
00:02:37,670 --> 00:02:40,460
‫Tutto ok?

57
00:02:40,460 --> 00:02:41,293
‫E ora, come

58
00:02:41,293 --> 00:02:43,010
‫già sai, le espressioni regolari possono essere davvero difficili.

59
00:02:43,010 --> 00:02:45,670
‫E quindi di solito li cerco su Google e quindi

60
00:02:45,670 --> 00:02:47,840
‫lascia che ti mostri come lo faccio effettivamente.

61
00:02:47,840 --> 00:02:50,273
‫In questo caso, cercherei semplicemente il testo di

62
00:02:53,280 --> 00:02:55,250
‫corrispondenza dell'espressione regolare tra virgolette.

63
00:02:55,250 --> 00:03:00,250
‫E poi di solito è giusto il primo risultato.

64
00:03:05,620 --> 00:03:08,660
‫E poi quaggiù abbiamo il risultato e quindi

65
00:03:08,660 --> 00:03:11,250
‫possiamo usare semplicemente questa espressione regolare.

66
00:03:11,250 --> 00:03:14,698
‫Ora vedo che abbiamo quaggiù questo quaggiù.

67
00:03:14,698 --> 00:03:17,150
‫Anche questo funziona ed è più facile da leggere.

68
00:03:17,150 --> 00:03:19,270
‫E ha un sacco di voti positivi

69
00:03:19,270 --> 00:03:21,100
‫e quindi possiamo semplicemente usare questo.

70
00:03:21,100 --> 00:03:23,280
‫Quindi dovrebbe funzionare anche quello.

71
00:03:23,280 --> 00:03:25,290
‫Quindi copiamolo e

72
00:03:25,290 --> 00:03:29,870
‫torniamo al nostro codice, e diciamo che il nostro valore,

73
00:03:29,870 --> 00:03:32,493
‫quindi const value è uguale all'errore. ermsg, quindi ricorda che quello era il

74
00:03:34,440 --> 00:03:37,663
‫nome della proprietà.

75
00:03:40,990 --> 00:03:45,990
‫Quindi, errmsg. Quindi, di nuovo, è perché questo è un errore creato da Mongo

76
00:03:46,000 --> 00:03:48,820
‫e quindi

77
00:03:48,820 --> 00:03:51,010
‫questi sono nomi leggermente diversi.

78
00:03:51,010 --> 00:03:53,383
‫Bene?

79
00:03:54,410 --> 00:03:55,243
‫Quindi abbiamo questa

80
00:03:55,243 --> 00:03:57,890
‫stringa e ora qui vogliamo abbinare la nostra espressione regolare.

81
00:03:57,890 --> 00:03:59,973
‫Quindi, match, e quindi in JavaScript,

82
00:04:02,140 --> 00:04:04,260
‫un'espressione regolare è sempre tra due barre.

83
00:04:04,260 --> 00:04:07,623
‫Quindi incollalo qui quello che abbiamo

84
00:04:08,530 --> 00:04:12,220
‫appena ricevuto da Stack Overflow e diamo un'occhiata.

85
00:04:14,450 --> 00:04:16,000
‫Quindi, siamo già in produzione.

86
00:04:22,260 --> 00:04:24,600
‫Al momento non invieremo alcuna risposta.

87
00:04:24,600 --> 00:04:27,340
‫Tutto quello che voglio fare ora è dare un'occhiata al valore.

88
00:04:27,340 --> 00:04:30,203
‫Quindi, se ho inviato questo ora, otteniamo questa strana risposta qui.

89
00:04:31,870 --> 00:04:36,870
‫E ancora, questo perché non inviamo alcun errore.

90
00:04:37,870 --> 00:04:40,910
‫Ma per ora ero davvero interessato solo al valore.

91
00:04:40,910 --> 00:04:44,213
‫E quindi questo, quello che vediamo qui nel registro ora

92
00:04:45,540 --> 00:04:46,660
‫è quel valore.

93
00:04:46,660 --> 00:04:48,980
‫E in realtà è un array.

94
00:04:48,980 --> 00:04:51,163
‫Ma ciò che ci interessa è in realtà questa stringa qui.

95
00:04:52,030 --> 00:04:55,830
‫Quindi in realtà corrispondeva a tutto il testo che si

96
00:04:55,830 --> 00:04:58,550
‫trovava tra le stringhe e quindi, possiamo

97
00:04:58,550 --> 00:05:00,670
‫dire che ha funzionato.

98
00:05:00,670 --> 00:05:01,970
‫Quindi la nostra espressione regolare ha funzionato.

99
00:05:03,680 --> 00:05:06,720
‫Ora, tutto ciò che dobbiamo dire è che vogliamo il

100
00:05:06,720 --> 00:05:08,370
‫primo elemento di quell'array.

101
00:05:08,370 --> 00:05:10,970
‫Quindi, elemento zero.

102
00:05:10,970 --> 00:05:12,960
‫E ora, andiamo avanti e

103
00:05:12,960 --> 00:05:16,280
‫restituiamo o new AppError, quindi new AppError, incolliamo

104
00:05:16,280 --> 00:05:20,590
‫il messaggio e di nuovo il codice di stato 400 per

105
00:05:20,590 --> 00:05:22,560
‫una richiesta errata.

106
00:05:22,560 --> 00:05:25,993
‫E quindi ora proviamoci di nuovo.

107
00:05:27,999 --> 00:05:29,570
‫Ancora una volta, stiamo ancora eseguendo

108
00:05:29,570 --> 00:05:31,820
‫una produzione e quindi il codice dovrebbe ora essere eseguito.

109
00:05:31,820 --> 00:05:34,550
‫E, naturalmente, abbiamo provato a sostituire la nostra x.

110
00:05:34,550 --> 00:05:37,423
‫Naturalmente, ora vogliamo il nostro valore qui.

111
00:05:40,400 --> 00:05:42,613
‫E così, ora otteniamo un

112
00:05:46,750 --> 00:05:51,110
‫valore di campo duplicato, "The Forest Hiker. " Perfetto.

113
00:05:51,110 --> 00:05:51,970
‫E ora,

114
00:05:51,970 --> 00:05:54,140
‫avanti, nel prossimo video tratteremo quindi

115
00:05:54,140 --> 00:05:57,330
‫l'ultimo dei tre errori che sono gli errori di convalida.

