Samir Danial
Samir Danial

Reputation: 79

How to implement validation using express-validator for the nested object

I created a model as follow: the model for buying, this used mongoose

in the model "name", "commodityID", "totalAmount" are required, but notice commodity ID and totalAmount is part of an inner object "productDetails", and now I am using express-validator to do server-side validation as like this this is the api through which the application can interact

this validation works for "name" fields which make sense but it doesn't work for the "totalAmount" and "commodityID" which are fields of an inner object, and it is the pics I took throw postman this is a request and response made by postman

may you guys show me the right way to solve this problem

Upvotes: 6

Views: 8471

Answers (2)

kob003
kob003

Reputation: 3717

for array i.e

productDetails: [
  {
    commodityID: {
      type: mongoose.Schema.Types.ObjectId,
      required: true,
      ref: "commodity",
    },
    perOnePrice: { type: String, required: true },
    totalAmount: { type: Number, required: true },
    
  },
],

use

[
 body('productDetails.*.commodityID').not().isEmpty()
 body('productDetails.*.perOnePrice').not().isEmpty()
 body('productDetails.*.totalAmount').not().isEmpty()
]

For nested object, lets suppose:

productDetails: {
    commodityID: {
      type: mongoose.Schema.Types.ObjectId,
      required: true,
      ref: "commodity",
    },
    perOnePrice: { type: String, required: true },
    totalAmount: { type: Number, required: true },      
  },

use

[
 body('productDetails.commodityID').not().isEmpty()
 body('productDetails.perOnePrice').not().isEmpty()
 body('productDetails.totalAmount').not().isEmpty()
]

Upvotes: 15

Manjeet Singh
Manjeet Singh

Reputation: 2398

Use Wildcard * for nested Objects Read Here

   [
        check('name', " ").not().isEmpty()
        check('productDetails.commdityID', " ").not().isEmpty()
        check('productDetails.totalAmount', " ").not().isEmpty()
    ]

Upvotes: 4

Related Questions