Hoe Mongoose gebruiken aangepaste Validators

Inleiding

het valideren van een schema wordt altijd aanbevolen. Validaties maken de database beter gestructureerd en voorkomen dat er slechte gegevens in worden ingevoegd. Mongoose biedt verschillende ingebouwde validators zoals vereist, minlength, maxlength, min, en max. Deze ingebouwde validators zijn zeer nuttig en eenvoudig te configureren. Maar validaties in mangoest zijn niet alleen beperkt tot ingebouwde validators. We kunnen ook aangepaste validaties maken. In dit artikel zullen we bespreken hoe u Mongoose custom validators kunt maken.

schema definiëren zonder validaties

we hebben een detailverzameling en dit is het schema dat hiervoor is gedefinieerd.

1
2
3
4
5
6
7
8
9
10
11
laat details = nieuwe Schema({
naam: {
type: String
},
leeftijd: {
type: Aantal
},
locaties: {
type:
}
});

neem de derde veld, d.w.z. locaties. Het type is de array van snaren. Op dit moment zijn er geen validaties. Dit betekent dat we, terwijl we documenten in deze collectie invoegen, elk van deze velden kunnen overslaan, of zelfs dat we ze allemaal kunnen overslaan. Laten we proberen een leeg document in te voegen met behulp van de mongo shell.

1
2
3
> db.informatie.insert ({})
WriteResult ({“nInserted” : 1 })
>

hier passeerden we een leeg object en het wordt ingevoegd in de collectie. Maar is dit juist? Wat is het nut van dit document? Daarom hebben we validaties om dergelijke situaties tegen te komen. We kunnen ingebouwde validators gebruiken, maar we zullen een aangepaste validator toevoegen aan het veld locaties.

aangepaste validators

omdat het veld type of locations de array van string is. Momenteel kan de array die moet worden ingevoegd elk aantal items bevatten. Laten we hier een validatie maken. Observeer het veld locaties nu.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let details = nieuw Schema ({
naam: {
type: String
},
leeftijd: {
type: Number
},
locations: {
type:,
validate: {
validator: function(arr) {
return arr.lengte > 2;
},
bericht :” U moet meer dan 2 locaties bieden.”
}
}
});

we hebben een nieuw veld toegevoegd, valideren.

1
2
3
4
5
6
valideren: {
validator: function (arr) {
return arr.lengte > 2
},
bericht: ‘U moet meer dan 2 locaties bieden.’
}

we moeten het sleutelwoord valideren gebruiken om aangepaste validaties te maken. Als waarde hebben we een object dat de validatie bevat.

1
2
3
validator: function (arr) {
return arr.lengte > 2
},

we definieerden een functie als de validatie die zal controleren of de lengte van de array groter is dan twee of niet. Als de validatie wordt geschonden, zal het een fout werpen die een bericht bevat dat we in het volgende veld hebben opgegeven.

1
bericht: ‘U moet meer dan 2 locaties bieden.’

dus laten we dit controleren met behulp van de postbode tool.

afbeelding van Gyazo

het geeft een fout aan die aangeeft “u moet meer dan 2 locaties opgeven.”omdat we twee waarden probeerden in te voegen.

conclusie

validatie is een belangrijk onderdeel van het mongoosschema. Samen met ingebouwde validators biedt mongoose ook de mogelijkheid om aangepaste validaties te maken. Het maken van aangepaste validaties is ook heel eenvoudig. Aangepaste validaties kunnen worden gebruikt wanneer ingebouwde validators niet aan de vereisten voldoen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.