2015-04-23 142 views
2

POST一個用戶對象到我的後端,我希望能夠使用Mongoose將這個用戶直接保存到我的數據庫。映射對象到貓鼬模型

但是,如果我爲對象分配新模型,它會覆蓋保存方法。

例如

var user = new User(); 
user = req.body.user //save no longer available 
user.save(function(err){ 
    ... 
} 

有沒有辦法來克服這個作爲目前我遇到的每個字段爲用戶指定的型號,像這樣:

var user = new User(); 
user.email = req.body.user.email; 
user.name = req.body.user.name; 
... 
+0

可以傳遞一個對象req.user一個型號,但它是一個不好的做法。 var user = new User(req.body.user); – vanadium23

+1

以及我正在驗證,但我沒有包括在問題中。 – tommyd456

回答

3

您與req.body.user重新分配變量user值,因此您最初分配的新模型將被丟棄。

var foo = 'first'; // declares foo and assigns 'first' to it 
foo = 'second'; // reassigns foo with value 'second' 

var user = new User(); // declares user and assigns a new User model instance 
user = req.body.user // reassigns user with value from req.body.user 

你也可以傳遞價值的用戶模型構造,這將實現你想要的結果:

var user = new User(req.body.user); // declares user and assigns a new User model with req.body.user as the initial value 
user.save(function(err){ 
    ... 
});