[英]Why do I get “cannot call doValidate of undefined” when saving a model using Mongoose.js?
有人可以幫忙嘗試使用mongoose.js ORM解釋我做錯了什么,並為我提供一些解決問題的指導。
嘗試使用mongoose.js orm保存模型時,出現錯誤:
無法調用未定義的方法“ doValidate”
我正在嘗試使用以下架構保存對象:
var myEntity = new Schema({
objectId : ObjectId
,title : String
, decription : String
, ownerId : String
, start : {
something : {
// ...
}
//removed for brevity!
}
, end : {
something : {
// ...
}
//removed for brevity!
}
, useruid : String
, _created : { type : Date, "default": new Date()}
, _updated : { type : Date, "default": new Date()}
}
mongoose.model("MyEntity", MyEntity);
我已將模型放在容器中,以便可以通過以下方式訪問它們:
var xyz = new models['whatever']();
容器對象如下所示:
var models = {
MyEntity : mongoose.model("MyEntity"),
};
我創建模型,並傳入具有所有正確“映射”或屬性的JSON對象:
var newEntity = new models.MyEntity(someObj);
然后下面的代碼是我如何保存模型:
newEntity.save(function(error) {
if (error) {
console.log(error);
}
writePostEntityResponse(newEntity);
});
我看不到我在做什么錯,錯誤消息雖然很清楚,但對我沒有太大幫助。
順序應該很重要。 如果在將架構附加到models
之前定義models
,那么您將處理正確的對象。
var schema = new Schema(...);
mongoose.model('ModelName', mySchema)
var models = {
"foo": mongoose.model('ModelName')
}
var xyz = new models['foo']();
xyz.save();
至於錯誤消息,貓鼬內置了一個驗證系統,因此每當您保存它時,它將進行驗證。 默認情況下,沒有驗證規則,因此不執行任何操作。 同樣,您嘗試保存的模型對象似乎丟失了某些內容,可能是架構,可能是驗證代碼。
, perhaps because I've altered a form or something. 通常,當我收到該錯誤時,這是因為 ,也許是因為我更改了表單或其他內容。
Mongo自動創建ObjectId。 您是否嘗試過刪除該字段並查看會發生什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.