【问题标题】:Reuse schemas in Joi在 Joi 中重用模式
【发布时间】:2020-07-02 23:06:54
【问题描述】:

当使用 Joi 进行验证时,我经常有两个非常相似的模式。一种用于创建资源,一种用于更改资源。更改资源的模式通常是相同的,所有属性都是可选的。 Joi 有没有办法采用模式并使所有值都是可选的?

【问题讨论】:

    标签: node.js joi hapi.js


    【解决方案1】:

    正如第一个答案所说,您可以使用.keys(),但让我举个例子:

    const Joi = require('joi')
    
    const username = Joi.string()
    
    const updateUser = Joi.object().keys({
      username
    })
    
    const createUser = Joi.object().keys({
      username: username.required()
    })
    
    updateUser.validate({}) // ? OK { value: {} }
    
    createUser.validate({}) // ? ERROR { value: {}, error: Error: '"username" is required' }
    

    我在阅读“hapi.js 入门”一书第六章时学到了这一点。

    希望对你有用。

    【讨论】:

      【解决方案2】:

      您可以使用 .keys 扩展 joi 模式

      https://joi.dev/api/?v=17.3.0#objectkeysschema

      【讨论】:

        猜你喜欢
        • 2022-09-28
        • 2021-10-25
        • 2016-08-12
        • 1970-01-01
        • 2019-11-26
        • 1970-01-01
        • 2021-04-20
        • 2019-01-06
        • 2019-10-08
        相关资源
        最近更新 更多