‫Istruttore: Gestiamo ora l'errore
‫che si verifica quando proviamo a creare campi
‫duplicati per campi che in realtà dovrebbero essere univoci.
‫E quindi, ricorda,
‫questo è il tipo di errore
‫che otteniamo.
‫Quindi, abbiamo provato a creare
‫un nuovo tour con un nome già
‫esistente e i campi del nome dovrebbero essere
‫univoci e quindi otteniamo questo errore.
‫Ora questo errore qui
‫non ha una proprietà name, ok?
‫E questo perché, come ho detto
‫prima, in realtà non è un
‫errore causato da una mangusta.
‫Ma invece, davvero,
‫dal driver MongoDB sottostante, ok?
‫Quindi, quello
‫che faremo per
‫identificare questo errore è usare questo 11.000 codice qui.
‫Tutto ok?
‫Quindi, abbiamo un gestore per CastError.
‫Ora creiamone uno per il caso in cui
‫abbiamo quell'errore. codice,. codice pari a 11.000.
‫Quindi, in tal caso, tutti gli errori dovrebbero essere uguali
‫agli errori restituiti da handleDuplicateFields e ancora,
‫sto aggiungendo DB qui solo per sapere che questo ha a che fare
‫con il nostro database.
‫Tutto ok?
‫E quindi ora creiamo effettivamente questa funzione.
‫E ora, il messaggio che invieremo è
‫questo, quindi creiamolo qui.
‫E quindi voglio che dica, Duplica il valore del
‫campo, e poi ascolti il
‫nome di quel valore, quindi mettiamolo su x per ora.
‫Lo genereremo un po' più tardi.
‫Quindi per favore usa un altro valore.
‫Tutto ok?
‫E quindi nel caso
‫che abbiamo appena visto, questa x qui dovrebbe essere chiamata Forest Hiker.
‫Quindi, in pratica, quello che stiamo cercando di
‫ottenere da questa stringa
‫di messaggio di errore qui è questo, "The Forest Hiker. " Quindi questo è il valore duplicato che vogliamo
‫inviare al
‫cliente in modo
‫che ora possa correggerlo
‫e creare un altro nome.
‫Quindi, come possiamo effettivamente estrarre questo
‫pezzo di corda qui?
‫Bene, useremo un'espressione regolare per, fondamentalmente,
‫come ho appena detto, trovare
‫il testo tra virgolette.
‫Perché qui in questa stringa, tutto ciò che
‫dobbiamo davvero identificare questo testo qui, quindi
‫per trovarlo, sono queste virgolette.
‫Tutto ok?
‫E ora, come
‫già sai, le espressioni regolari possono essere davvero difficili.
‫E quindi di solito li cerco su Google e quindi
‫lascia che ti mostri come lo faccio effettivamente.
‫In questo caso, cercherei semplicemente il testo di
‫corrispondenza dell'espressione regolare tra virgolette.
‫E poi di solito è giusto il primo risultato.
‫E poi quaggiù abbiamo il risultato e quindi
‫possiamo usare semplicemente questa espressione regolare.
‫Ora vedo che abbiamo quaggiù questo quaggiù.
‫Anche questo funziona ed è più facile da leggere.
‫E ha un sacco di voti positivi
‫e quindi possiamo semplicemente usare questo.
‫Quindi dovrebbe funzionare anche quello.
‫Quindi copiamolo e
‫torniamo al nostro codice, e diciamo che il nostro valore,
‫quindi const value è uguale all'errore. ermsg, quindi ricorda che quello era il
‫nome della proprietà.
‫Quindi, errmsg. Quindi, di nuovo, è perché questo è un errore creato da Mongo
‫e quindi
‫questi sono nomi leggermente diversi.
‫Bene?
‫Quindi abbiamo questa
‫stringa e ora qui vogliamo abbinare la nostra espressione regolare.
‫Quindi, match, e quindi in JavaScript,
‫un'espressione regolare è sempre tra due barre.
‫Quindi incollalo qui quello che abbiamo
‫appena ricevuto da Stack Overflow e diamo un'occhiata.
‫Quindi, siamo già in produzione.
‫Al momento non invieremo alcuna risposta.
‫Tutto quello che voglio fare ora è dare un'occhiata al valore.
‫Quindi, se ho inviato questo ora, otteniamo questa strana risposta qui.
‫E ancora, questo perché non inviamo alcun errore.
‫Ma per ora ero davvero interessato solo al valore.
‫E quindi questo, quello che vediamo qui nel registro ora
‫è quel valore.
‫E in realtà è un array.
‫Ma ciò che ci interessa è in realtà questa stringa qui.
‫Quindi in realtà corrispondeva a tutto il testo che si
‫trovava tra le stringhe e quindi, possiamo
‫dire che ha funzionato.
‫Quindi la nostra espressione regolare ha funzionato.
‫Ora, tutto ciò che dobbiamo dire è che vogliamo il
‫primo elemento di quell'array.
‫Quindi, elemento zero.
‫E ora, andiamo avanti e
‫restituiamo o new AppError, quindi new AppError, incolliamo
‫il messaggio e di nuovo il codice di stato 400 per
‫una richiesta errata.
‫E quindi ora proviamoci di nuovo.
‫Ancora una volta, stiamo ancora eseguendo
‫una produzione e quindi il codice dovrebbe ora essere eseguito.
‫E, naturalmente, abbiamo provato a sostituire la nostra x.
‫Naturalmente, ora vogliamo il nostro valore qui.
‫E così, ora otteniamo un
‫valore di campo duplicato, "The Forest Hiker. " Perfetto.
‫E ora,
‫avanti, nel prossimo video tratteremo quindi
‫l'ultimo dei tre errori che sono gli errori di convalida.