【问题标题】:Can I use an enum for a JOi schema property name我可以将枚举用于 JOi 架构属性名称吗
【发布时间】:2020-10-02 12:30:39
【问题描述】:

是否可以对 Joi 模式的属性名称使用枚举?

例如,给定以下string-constants.enum.js 文件:

export default {
    INPUT_BUSINESS_NAME: 'business-name',
    INPUT_ADDRESS_LINE_1: 'address-line-1'
    // etc...
}

我想做的是:

const stringConstants = require('path/to/string-constants.enum')
const Joi = require('@hapi/joi')

const businessDetailsSchema = {
    [stringConstants.INPUT_BUSINESS_NAME]: Joi.string().required(),
    [stringConstants.INPUT_ADDRESS_LINE_1]: Joi.string().required(),
    //  etc...
}

但是,当验证包含“business-name”或“address-line-1”字段的字段集时,它会引发错误,指出这些字段未在架构中定义。

如果我使用这个:

const bname = 'business-name'
const add1 = 'address-line-1'
const businessDetailsSchema = {
    [bname]: Joi.string().required(),
    [add1]: Joi.string().required(),
    //  etc...
}

然后它工作正常 - 所以从导入的枚举中读取值似乎是一个问题。 谢谢

【问题讨论】:

    标签: joi hapi


    【解决方案1】:

    已修复 - 需要使用 import 而非 require 来引入枚举。

    现在可以使用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 2022-09-23
      相关资源
      最近更新 更多