繁体   English   中英

在Joi中允许可选参数而不指定它们

[英]Allow optional parameters in Joi without specifying them

我很擅长使用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有办法做到吗?

您可以在options中将allowUnknown设置为true

validate: {
  payload: {
    email : Joi.string().required(),
    password : Joi.string().required(),
  },
  options: {
    allowUnknown: true
  }
}

options参数在验证时传递给Joi

对于当前版本的Joi(v15.1.0),在做的时候

Joi.validate(value, schema, options)

set allowUnknown: true

进入options对象。

参考

https://github.com/hapijs/joi/blob/v15.1.0/API.md#validatevalue-schema-options-callback

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM