IT,프로그래밍/Node.js

express-validator 에서 array 내부 object 검증 하는법

express-validator 라는 모듈은 미리 명시해준 기준에 따라 검증을 할수있게 해주는 모듈입니다.

예를 들어 body에 전달되는 값중 age 이라는 키의 값이 반드시 Integer형만 와야 한다고 한다면

body('age').isInt()

라고 표현해주면 body에 전달되는 값중 age는 반드시 숫자형이 와야 한다는 뜻이고 아닐경우 핸들링 해주는

기능을 제공합니다.

 

더 자세한 내용은 이번 글에서 다룰내용이 아니기에 API Document 링크를 첨부합니다

-> https://express-validator.github.io/docs/validation-chain-api.html#isstring

 

이번글의 주제는 만일에 Array 내부에 들어가는 object의 값을 검사하고 싶으면 그러면 어떻게 해야 하는가? 입니다.

 

{
	"data":[

		{
			"serviceType" : "CNC",
			"category" : "스테인리스2",
			"subCategory" : "808"
		},
		{
			"serviceType" : "CNC",
			"category" : "스테인리스2",
			"subCategory" : "808"
		}
	]
}

예를 들어 위와 같은 형태로 body로 request를 받는다고 할경우 data 는 isArray() 로 가능하지만

그 내부의 있는 object도 검증을 해줘야 합니다.

 

  body('data').isArray(),
  body('data.*.serviceType').isString().trim(),
  body('data.*.category').isString().trim(),
  body('data.*.subCategory').isString().trim(),

방법은 위와 같이 .*. 을 써주는 겁니다.

그러면 data 내부의 serviceType등을 검사할수있게됩니다.

 

 

 

 

 

 

 

참고링크

https://stackoverflow.com/questions/53537952/validate-array-of-objects-in-express-validator