首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用数组中的复杂对象验证蒙鹅模式

如何用数组中的复杂对象验证蒙鹅模式
EN

Stack Overflow用户
提问于 2016-03-07 02:45:49
回答 1查看 299关注 0票数 0

我正在构建一个在数组中有一个复杂对象的模式:

代码语言:javascript
复制
foo:{
   bar:[{
       ItemA:String,
       ItemB:String
   }]
}

我希望向数组中的对象添加验证,以检查数组大小(我希望将数组的大小限制在10)。

如何构造模式以验证数组中的这类对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 04:57:35

您可以通过模式中的validate选项这样做,如下所示

代码语言:javascript
复制
var FooSchema = new Schema({
    foo:{
       bar: {
            type: [{
               ItemA:String,
               ItemB:String
            }],
            validate: [arrlimit, '{PATH} exceeds the limit 10']
        }
    }
});

function arrlimit(arr) {
    return arr && arr.length <= 10;
};

如果您向10数组中添加了比bar项更多的项,如

代码语言:javascript
复制
var f = Foo({});
for (var i = 0; i < 12; ++i)
    f.foo.bar.push({ItemA: 'A', ItemB: 'B'});

f.save(function(err) {
    if (err)
        console.log(err);
    else
        console.log('save foo successfully....');
})

错误就会出现

代码语言:javascript
复制
{ [ValidationError: Foo validation failed]
  message: 'Foo validation failed',
  name: 'ValidationError',
  errors:
   { 'foo.bar':
      { [ValidatorError: foo.bar exceeds the limit 10]
        properties: [Object],
        message: 'foo.bar exceeds the limit 10',
        name: 'ValidatorError',
        kind: 'user defined',
        path: 'foo.bar',
        value: [Object] } } }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35835376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档