验证Mongoose Mixed模式类型

时间:2013-04-08 01:57:22

标签: mongodb mongoose

我有一个架构:

// Schema
var Product = new Schema({
  data: {
    type: mongoose.Schema.Types.Mixed
  },
  created: {
    type: Date,
    'default' : Date.now
  }
});

'data'字段用于存储json字符串,该字符串将有所不同。但是我想执行一些基本的验证,例如长度等。但是这样做:

// Validation
Product.path('data').validate(function (value) {
  console.log(value);
  return value.length > 0;
}, 'Data cannot be blank');

引发有关数据不存在的错误:

TypeError: Cannot read property 'length' of undefined

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

您将“值”视为对象而不检查它是否确实存在。试试这个:

if(typeof value !== "undefined" && value !== null)
{
  return value.length > 0
}