小编Bra*_*vo 的帖子

Joi 验证:如果对象与模式匹配,则从多个项目中对其进行验证

我有一个对象数组要从特定模式进行验证,如果任何对象与给定模式匹配,我想对其进行验证并忽略其他模式并移至下一个数组项。

我尝试了 Joi.alternatives,但它会检查所有模式,而不是仅检查一个匹配的模式。

我的验证器:

Joi.array().min(1).max(49).items(Joi.object({
    type: Joi.number().valid([1, 2, 3, 4]).required()
}).when(Joi.object({
    type: Joi.number().valid(1)
}).unknown(), {
    then: profile1
}).when(Joi.object({
    type: Joi.number().valid(2)
}).unknown(), {
    then: profile2
}).when(Joi.object({
    type: Joi.number().valid(3)
}).unknown(), {
    then: profile3
}))
Run Code Online (Sandbox Code Playgroud)

配置文件1//类型1

export default Joi.object().keys({

    type: Joi.number().valid([1, 2, 3]).required(),
    surname: Joi.string().max(50).allow(""),
    givenname: Joi.string().max(50).allow("")

}).unknown(true)
Run Code Online (Sandbox Code Playgroud)

配置文件2//类型2

export default Joi.object().keys({

    type: Joi.number().valid([1, 2, 3]).required(),
    address: Joi.string().max(50).allow(""),
    initialname: Joi.string().max(50).allow(""),
    surname: Joi.string().max(50).allow(""),
    data: Joi.array.min(1).max(29).items(Joi.object({
       code: Joi.string().max(20).allow(""),
       number: Joi.string().max(20).allow(""),
    }),
    address1: Joi.array.min(1).max(29).items(Joi.object({
       city: Joi.string().max(20).allow(""),
       postal: Joi.string().max(20).allow(""),
    })
}).unknown(true)
Run Code Online (Sandbox Code Playgroud)

配置文件3//类型3

export default Joi.object().keys({

    type: Joi.number().valid([1, …
Run Code Online (Sandbox Code Playgroud)

javascript validation node.js joi

7
推荐指数
1
解决办法
1227
查看次数

JavaScript:如何映射两个对象以获取将第一个对象的 Id 映射到另一个对象的名称的输出?

我正在尝试创建一个将 data2 对象值映射到 data1 名称的函数。

我试图用 data1 迭代 data2 object2,但它不能正常工作。我能够映射它们,但当 data2 中不存在 data1 时,无法获取它的值。

有什么方法可以正确映射以获得代码中提到的所需输出?

let data1 = {
    attributes: [{
            Id: 'test1',
            Name: 'Test1',
            Type: 'date'
        },
        {
            Id: 'test2',
            Name: 'Test2',
            Type: 'string'
        },
        {
            Id: 'test3',
            Name: 'Test3',
            Type: 'string'
        },
        {
            Id: 'test4',
            Name: 'Test4',
            Type: 'boolean'
        }
    ]
};

let data2 = {
    value: [{
            test1: '10-12-2021',
            test2: '4',
            dummy: 'ignore me'
        },
        {
            test3: '3',
            test4: true,
            abc: 'ignore me'
        },
        {
            test1: '12-12-2023', …
Run Code Online (Sandbox Code Playgroud)

javascript arrays for-loop object

6
推荐指数
1
解决办法
273
查看次数

防止用户单击按钮,直到服务响应 angular 7 rxjs

我正在寻找有效的解决方案,以避免用户一次又一次地单击提交按钮,直到他们从后端 API 得到响应。

我想过以下解决方案,但正在寻找任何其他方法来处理这个问题。

  1. 使用 loader 将禁用整个 html,直到我们得到一些响应。

  2. 使用exhaustmap避免多次http调用

  3. 使用throttletime 将手动不允许用户点击特定时间段。

如果我们可以使用任何其他解决方案,请指导我。

javascript rxjs typescript angular

1
推荐指数
2
解决办法
903
查看次数

标签 统计

javascript ×3

angular ×1

arrays ×1

for-loop ×1

joi ×1

node.js ×1

object ×1

rxjs ×1

typescript ×1

validation ×1