我得到這個模式中的對象時:麻煩試圖挽救與上一個的NodeJS文件throught貓鼬
var schema = {
id : { type:Number, unique:true },
name : String,
kind : String,
size : Object,
skin : String,
position : Object,
velocity : Object,
acceleration : Object,
spritesheet : String,
animation : Object,
animations : Object,
currentAnimation : String,
visible : Boolean
};
注:以下this
是樓內設有商務對象的實例。 this.dao
設置是這樣的:
var elementSchema = mongoose.Schema(schema);
this.dao = mongoose.model('Element', elementSchema);
在這裏你有我用它來獲取數據的方式:
this.dao.findOne({"id":id},(function(err,result){
this.data = result;
}).bind(this)) ;
我省像這樣在我的對象:
this.data.save((function(err,result,row){
if(err !== null) throw err;
if(row === 1) {
console.log(result);
this.emit("saved");
}
}).bind(this)) ;
問題:
It對於架構中的很多類型來說工作得很好,但我遇到了Object
類型的奇怪問題。
當我嘗試保存我的數據時,它適用於所有,但不適用於對象類型。 console.log(this.data.position)在控制檯中顯示爲{x:100,y:200}
。但如果我改變data.position
像這樣:data.position = {x:100,y:200}
並保存後,它的作品!
我的假設:
可能是我data.position有原型的屬性,當我試圖挽救它和數據無法保存。問題是,我沒有錯誤,並在保存功能的回調,顯示我的應用程序數據的result
VAR ...
注:我剛纔看到,這不是一個官方的SchemaType(http://mongoosejs.com/docs/schematypes.html)...
我的問題:
如何在正確的文件保存Object
與貓鼬? 爲什麼我沒有錯誤,如果保存失敗?
(我更新到最新版本3.8.8,我得到了同樣的問題)。