我在外部文件中创建了一个包含所有必填字段和可选字段的Schema,并在我的client.js上创建了一个包含用户输入的XLSX字段的数组。 我的目标是根据我的模式验证我的数组,如果缺少任何疯狂字段或者任何字段输入错误,则输出错误。 这是我的代码,如果输入值错误,则更改输入值,在这种情况下,如果输入是字符串“是”,则将其评估为true,否则为false:
myField: {
type: (Boolean),
optional: true,
custom: function() {
let value = this.value;
if (value === "Yes") {
return value = true;
}
else { return value = false }
}
},
我已经搜索了关于如何做到这一点的简单模式文档,但是我无法使用提供的示例,我坚持这一点。
提前致谢。
答案 0 :(得分:1)
您必须使用autoValue
而不是custom
。
custom
用于字段验证,而不是用于更改值。
const SimpleSchema = require( 'simpl-schema').default;
const schema = new SimpleSchema(
{
myBool:{
type: Boolean,
optional: true,
autoValue(){
if(this.value == "Yes"){
return true
} else if(this.value == "No") {
return false
}
}
}
}
)
const validationContext = schema.newContext()
//clean is called in Collection2 before validating
const res = schema.clean({
myBool: "Yes"
})
console.log("cleaned Object",res)
validationContext.validate(res)
console.log(validationContext.validationErrors())
我个人不会在架构中进行yes / true,no / false转换。