Sådan bruges Mongoose brugerdefinerede validatorer

introduktion

validering af et skema anbefales altid. Valideringer gør databasen bedre struktureret og undgår indsættelse af dårlige data i den. Mongoose giver flere indbyggede validatorer som krævet, minlength, makslength, min og maks. Disse indbyggede validatorer er meget nyttige og enkle at konfigurere. Men valideringer i mongoose er ikke kun begrænset til indbyggede validatorer. Vi kan også oprette brugerdefinerede valideringer. I denne artikel vil vi diskutere, hvordan man opretter mongoose brugerdefinerede validatorer.

definerende skema uden valideringer

vi har en detaljesamling, og dette er skemaet defineret for det.

1
2
3
4
5
6
7
8
9
10
11
lad detaljer = nyt skema ({
navn: {
type: String
},
alder: {
type: nummer
},
steder: {
type:
}
});

Overhold det tredje felt, dvs. placeringer. Dens type er rækken af strenge. Fra nu af er der ingen valideringer. Dette betyder, at mens vi indsætter dokumenter i denne samling, kan vi springe et af disse felter over, eller endda kan vi springe dem alle over. Lad os prøve at indsætte et tomt dokument ved hjælp af mongo-skallen.

1
2
3
> db.information.indsæt ({})
Skriveresultat ({“nInserted” : 1 })
>

her passerede vi et tomt objekt, og det er indsat i samlingen. Men er det rigtigt? Hvad er meningen med dette dokument? Derfor har vi valideringer til at støde på sådanne situationer. Vi kan bruge indbyggede validatorer, men vi tilføjer en brugerdefineret validator til feltet placeringer.

brugerdefinerede validatorer

da feltet type placeringer er rækken af streng. I øjeblikket kan det array, der skal indsættes, indeholde et hvilket som helst antal elementer. Lad os oprette en validering her. Overhold placeringsfeltet nu.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
lad detaljer = nyt skema ({
navn: {
type: Streng
},
alder: {
type: nummer
},
placeringer: {
type:,
valider: {
validator: funktion(arr) {
return arr.længde > 2;
},
besked: “du skal angive mere end 2 placeringer.”
}
}
});

vi har tilføjet et nyt felt, validere.

1
2
3
4
5
6
validere: {
validator: funktion (arr) {
retur arr.længde > 2
},
besked: ‘du skal angive mere end 2 placeringer.’
}

vi skal bruge valideringsnøgleordet til at oprette brugerdefinerede valideringer. Som dens værdi har vi et objekt, der indeholder valideringen.

1
2
3
validator: funktion (arr) {
retur arr.længde > 2
},

vi definerede en funktion som validering, der vil kontrollere, om længden af arrayet er større end to eller ej. Hvis valideringen overtrædes, kaster den en fejl, der indeholder en meddelelse, som vi specificerede i det næste felt.

1
besked: ‘du skal angive mere end 2 placeringer.’

så lad os kontrollere dette ved hjælp af postbudværktøjet.

billede

det kaster en fejl, der angiver “du skal angive mere end 2 placeringer.”fordi vi forsøgte at indsætte to værdier.

konklusion

Validering er en vigtig del af mongoose-skemaet. Sammen med indbyggede validatorer giver mongoose også mulighed for at oprette brugerdefinerede valideringer. Oprettelse af brugerdefinerede valideringer er også meget enkel. Brugerdefinerede valideringer kan bruges, hvor indbyggede validatorer ikke opfylder kravene.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.