gpt4 book ai didi

javascript - 简单架构 : Depending values instead of optional values

转载 作者:行者123 更新时间:2023-11-29 19:03:28 25 4
gpt4 key购买 nike

这是我的 SimpleSchema 验证的样子:

validate: new SimpleSchema({
type: { type: String, allowedValues: ['start', 'stop'] },
_id : { type: SimpleSchema.RegEx.Id, optional: true },
item: { type: String, optional: true }
}).validator()

但这并不是我所需要的:

如果 typestart,则必须有一个 item 值,如果 typestop 必须有一个 _id 值。

最佳答案

您可以通过如下更改代码来实现此目的

validate: new SimpleSchema({
type: { type: String, allowedValues: ['start', 'stop'] },
_id : {
type: SimpleSchema.RegEx.Id,
optional: true,
custom: function () {
if (this.field('type').value == 'stop') {
return SimpleSchema.ErrorTypes.REQUIRED
}
}
},
item: {
type: String,
optional: true,
custom: function () {
if (this.field('type').value == 'start') {
if(!this.isSet || this.value === null || this.value === "") {
return SimpleSchema.ErrorTypes.REQUIRED
}
}
}
}
}).validator()

如果您使用 SimpleSchema 的 atmosphere 包,您可以将 return SimpleSchema.ErrorTypes.REQUIRED 替换为 return 'required'。我仅使用 NPM 包 测试了上面的代码,两个版本都运行良好。

这是此功能的非常基本的实现。 SimpleSchema 甚至允许根据执行的操作(插入、更新)有条件地要求字段。

您可以在文档中阅读更多相关信息

关于javascript - 简单架构 : Depending values instead of optional values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44934362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com