是否可能在未指定的元素上导致"validate"失败



即使obj包含不在架构中的元素,下面的语句也会返回成功。

问题

当它看到架构中没有指定的元素时,是否可能导致验证失败?

耶稣有这个expect(obj1).toEqual(obj2)

如果Validate不能做到这一点,那么我必须有什么选项来检测不需要的元素?

const Schema = require("validate");
const obj = {good: "1", bad: "2"};
const user = new Schema({
good: {
type: String,
required: true,
}
});
const r = user.validate(obj);
console.log(r);

是的,Schema上有一个strict选项,来自文档:

架构

模式定义了对象应该验证的结构。

参数
  • obj模式定义
  • opts选项
    • opts.typecast

    • opts.strip

    • opts.strict

      当对象包含架构中未定义的属性时,验证失败(可选,默认为false(

所以你需要这样的东西:

const options = { strict: true };
const user = new Schema({
good: {
type: String,
required: true,
}
}, options);

相关内容

最新更新