2

我有一个架构:

// 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

做这个的最好方式是什么?

4

1 回答 1

3

您将“价值”视为一个对象,而不检查它是否真的是。试试这个:

if(typeof value !== "undefined" && value !== null)
{
  return value.length > 0
}
于 2013-05-02T01:26:14.917 回答