我很高兴使用Joi来验证hapi中的请求有效负载。我的问题如下。我有这个明确的路线:
{
method: 'POST',
path: '/foo/bar',
config: {
description: 'foo.bar',
handler: handlers.foo,
auth:false,
tags: ['api'],
validate: {
payload: {
email : Joi.string().required(),
password : Joi.string().required(),
}
}
}
}
电子邮件和密码是我要求的属性。但是,我想允许其他属性而不必全部指定它们。例如:
{
email: foo@bar.com,
password: fooPass,
name: myName,
surname: mySurname
}
有没有办法和Joi一起做?
答案 0 :(得分:13)
您可以在allowUnknown
中将true
设置为options
:
validate: {
payload: {
email : Joi.string().required(),
password : Joi.string().required(),
},
options: {
allowUnknown: true
}
}
options
参数在验证时传递给Joi。
答案 1 :(得分:0)
对于当前版本的Joi(v15.1.0),同时执行
Joi.validate(value, schema, options)
设置allowUnknown: true
进入options
对象。
参考:
https://github.com/hapijs/joi/blob/v15.1.0/API.md#validatevalue-schema-options-callback