【问题标题】:How To Set Require All Properties in Ajv/Fastify?如何在 Ajv/Fastify 中设置需要所有属性?
【发布时间】:2021-10-25 10:25:41
【问题描述】:

我有一个所有属性都应该存在的架构,由于大量属性,手动将它们添加到 必需的数组 中不是很好的方法,有什么方法可以做到吗?

架构代码

const schema = {
     type: "object",
     properties: {
         foo,
         bar
     },
    required : ['stockid', 'quantity'],
    additionalProperties: false,
}

我想要所有必需的属性,但我不想在必需的数组中手动​​添加每个属性。

谢谢:)

【问题讨论】:

    标签: fastify ajv


    【解决方案1】:

    默认情况下没有这样的功能。 您需要编写一个实用函数来执行此操作。

    const schema = {
      type: 'object',
      properties: {
        foo: {},
        bar: {}
      },
      additionalProperties: false
    }
    
    const fastifyRouteConfig = {
      schema: {
        body: requireAll(schema)
      }
    }
    
    function requireAll (schema) {
      return {
        ...schema,
        required: Object.keys(schema.properties)
      }
    }
    

    请注意,在 onRoute 挂钩中组合它可以自动执行此过程,因为您可以在那里操作 schema 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-21
      • 2020-04-25
      • 2017-01-16
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 2020-06-24
      相关资源
      最近更新 更多