hej, mam pytanie dotyczące express-validatora(node). potrzebuję sprawdzić obiekt ale nie do końca wiem jak to ogarnąć z kilku powodów.
1. sporo zagnieżdżeń
2. potrzebny warunek w trakcie sprqawdzania, ponieważ zależnie od tego co jest w danym parametrze są dwie drogi jak objikt może wyglądać.
przykładowy obiekt w json:
{
"name": "Meter",
"owner": "example",
"workPerMeter": {
"is": true,
"materials": [{
"name": "one",
"quantity": 10,
"pricePerItem": 15
},
{
"name": "two",
"quantity": 15,
"pricePerItem": 50
}
],
"difficults": [{
"name": "stairs",
"converter": 0.2
},
{
"name": "problem with transport",
"converter": 0.1
}
],
"materialsSumPrice": 750,
"numbersOfMeters": 20,
"pricePerMeter": 30,
"totalPriceNetto": 1339.76,
"totalPriceBrutto": 1647.9
},
"workPerDay": {
"is": false
}
}
lub
{
"name": "Day",
"owner": "example",
"workPerMeter": {
"is": false
},
"workPerDay": {
"is": true,
"works": [{
"name": "one",
"materials": [{
"name": "paper",
"quantity": 10,
"pricePerItem": 2
}],
"activities": [{
"name": "grinding",
"numberOfWorkingDays": 2
},
{
"name": "assembly",
"numberOfWorkingDays": 1
}
],
"sumOfWorkingDays": 3
}],
"totalMaterialsSumPrice": 20,
"totalSumOfWorkingDays": 3,
"moneyOfTheDay": 400,
"totalPriceNetto": 1216.26,
"totalPriceBrutto": 1496
}
}
jeżeli workPerMeter.is === true to ma sprawdzać ten obiekt, jeżeli nie to ma iść dalej
jeżeli workPerDay.is === true to samo.
widziałem w dokumentacji, ze można użyć funkcji checkSchema() ale wtedy nie mam jak dać tego warunku, a jeżeli użyję check("workPerMeters").if(body("is")) to nie mogę użyć schema.
chyba, że czegoś nie rozumiem albo nie ogarnąłem.
jak to zrobić żeby było w miarę czytelne i nie trzeba było ręcznie sprawdzać całości czyli pisać specjalnie middleware?