请求对象验证

时间:2018-04-05 11:31:48

标签: javascript node.js validation

您能解释一下如何为大型嵌套请求对象创建验证,您是否为自己为对象中的每个字段创建验证,例如:

if (name === undefined){
  errors = { name: 'name is required' }
} else if (typeof name !== 'String') {
  errors = { name: 'name must be a string' }
} else if (name.length < 2) {
  errors = { name: 'name length must be more 2' }
} else if ...

对于每个领域,还是使用一些库?

2 个答案:

答案 0 :(得分:0)

您可以使用Joi库进行请求对象验证。 例如。验证请求对象中的字符串:

{
 name: Joi.string.required().description('user name')
}

例如,验证对象

{
   userData: Joi.object({
     name: Joi.string.required().description('user name')
  })
}

答案 1 :(得分:0)

您可以使用safen库进行复杂的对象验证。

示例

const safen = require("safen")

const validation = safen.create({
  name: "string & length_min: 2",
})

validation.assert({name: "foo"}) // safe

validation.assert({name: 30}) // exception
validation.assert({name: "f"}) // exception