我有一个架构:
// 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
这样做的最佳方式是什么?
答案 0 :(得分:3)
您将“值”视为对象而不检查它是否确实存在。试试这个:
if(typeof value !== "undefined" && value !== null)
{
return value.length > 0
}