Cum să utilizați Mongoose validatoare personalizate

Introducere

validarea unei scheme este întotdeauna recomandată. Validările fac ca baza de date să fie mai bine structurată și să evite introducerea de date proaste în ea. Mongoose oferă mai multe validatoare încorporate, cum ar fi required, minlength, maxlength, min și max. Aceste validatoare încorporate sunt foarte utile și ușor de configurat. Dar validările în mongoose nu se limitează doar la validatoarele încorporate. De asemenea, putem crea validări personalizate. În acest articol, vom discuta cum să creați validatori personalizați mongoose.

definirea schemei fără validări

avem o colecție de detalii și aceasta este schema definită pentru aceasta.

1
2
3
4
5
6
7
8
9
10
11
să Detalii = noua schemă ({
nume: {
tip: String
},
vârstă: {
tip: Număr
},
locații: {
tip:
}
});

observați al treilea câmp, adică locații. Tipul său este matricea de șiruri de caractere. Deocamdată, nu există validări. Aceasta înseamnă că, în timp ce inserăm documente în această colecție, putem sări peste oricare dintre aceste câmpuri sau chiar le putem sări peste toate. Să încercăm să introducem un document gol folosind shell-ul mongo.

1
2
3
> P. B.detalii.insert ({})
WriteResult ({„nInserted” : 1 })
>

aici am trecut un obiect gol și este introdus în colecție. Dar este corect? Care este scopul acestui document? De aceea avem validări pentru a întâlni astfel de situații. Putem folosi validatoare încorporate, dar vom adăuga un validator personalizat în câmpul locații.

validatoare personalizate

ca tip de câmp locații este matrice de șir. În prezent, matricea care urmează să fie inserată poate conține orice număr de elemente. Să creăm o validare aici. Observați câmpul locații acum.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
să Detalii = noua schemă ({
nume: {
tip: String
},
vârstă: {
tip: Număr
},
locații: {
tip:,
validare: {
validator: funcție(arr) {
întoarcere arr.lungime > 2;
},
mesaj: „trebuie să furnizați mai mult de 2 locații.”
}
}
});

am adăugat un câmp nou, validați.

1
2
3
4
5
6
validare: {
validator: funcție (arr) {
întoarcere arr.lungime > 2
},
mesaj :’ trebuie să furnizați mai mult de 2 locații.’
}

trebuie să folosim cuvântul cheie validate pentru a crea validări personalizate. Ca valoare, vom avea un obiect care conține validarea.

1
2
3
validator: funcție (arr) {
întoarcere arr.lungime > 2
},

am definit o funcție ca validarea care va verifica dacă lungimea matricei este mai mare de două sau nu. Dacă validarea este încălcată, va arunca o eroare care conține un mesaj pe care l-am specificat în câmpul următor.

1
mesaj :’ trebuie să furnizați mai mult de 2 locații.’

deci, să verificăm acest lucru folosind instrumentul poștaș.

imagine din Gyazo

aruncă o eroare care indică „trebuie să furnizați mai mult de 2 locații.”pentru că am încercat să introducem două valori.

concluzie

validarea este o parte importantă a schemei mongoose. Împreună cu validatoare built-in, mongoose oferă, de asemenea, opțiunea de a crea validări personalizate. Crearea validărilor personalizate este, de asemenea, foarte simplă. Validările personalizate pot fi utilizate în cazul în care validatoarele încorporate nu îndeplinesc cerințele.

Lasă un răspuns

Adresa ta de email nu va fi publicată.