El cuerpo de la solicitud es como
{ "name":"nazmul Haque", "age" : "26", "favoriteBooks" : [ { "name": "A Murder is announced", "writer":"Agatha Christie", "price" :700 }, { "name": "Srikanto", "writer":"Sarat Chandra Chattopadhyay", "price" :500 } ] } Ahora quiero validar que la clave de name exista o no y la longitud debe estar en 256 y price no puede estar vacío de todos los objetos de los libros favoritos. y cómo lo hago con el validador expreso sin método personalizado.
como si nuestro cuerpo requerido se viera como a continuación
[ { "name": "A Murder is announced", "writer":"Agatha Christie", "price" :700 }, { "name": "Srikanto", "writer":"Sarat Chandra Chattopadhyay", "price" :500 } ]de lo que podemos validarlo como
body().isArray().withMessage("body is not an array"), body("*.name", "name can not be null").exists().notEmpty().isLength({max:256}), body("*.price") .exists() .notEmpty() .withMessage("price can not be null"), No puedo hacerlo con el proceso anterior para el 1st Req Body porque hay array of Object dentro de un object
export const complexValidation = [ body('name', "Name must be a string") .isLength({ min: 1 }), body('age', "age must be a integer") .isInt(), body('favoriteBooks', "favoriteBooks must be an array with min single value") .isArray({ min: 1 }), body('favoriteBooks.*.name', "Name must be a string") .isLength({ min: 1 }), body('favoriteBooks.*.writer', "Name must be a string") .isLength({ min: 1 }), body('favoriteBooks.*.price', "Name must be a string") .isNumeric() ]