Joi 验证 - 不允许空对象

5 javascript node.js joi

通过 HTTP 请求,我从客户端收到以下正文:

{
    a: string,
    b: string,
    c: string
}
Run Code Online (Sandbox Code Playgroud)

我想用 joi 验证它们,所以我这样做:

const MySchema = Joi.Object<MyModel>().keys({
    a: Joi.string().alfanum().min(1).max(150).optional(),
    b: Joi.string().alfanum().min(1).max(150).optional(),
    c: Joi.string().alfanum().min(1).max(150).optional(),
}).required()
Run Code Online (Sandbox Code Playgroud)

这允许空对象。

我该如何对 joi 说不允许空对象?我希望正文请求至少具有其中一个键。目前我还没有找到解决方案。

我知道我可以在 API 中处理它,但我不想编写无用的代码。

谢谢你!

小智 8

我解决了它

Joi.object<MyModel>.keys({/*My keys*/}).required().min(1)
Run Code Online (Sandbox Code Playgroud)