簡體   English   中英

使用 [mongoose_model_object].save() 方法時,contact.save 不是函數錯誤

[英]contact.save is not a function error while using [mongoose_model_object].save() method

這里 auth 是一個生成 jwt 和授權用戶的中間件,我有一個名為 Contact 的貓鼬模型。 但是,當我嘗試執行 contact.save() 時,它會拋出一個異常,因為 contact.save() 不是函數。

router.post('/',auth,async (req,res)=>{
try
{
 let contact = new Contact();
 contact = {...req.body};
 contact.userID=req.user.id;

 const {error} = validateContact(contact);
 console.log(`ERROR - ${error}`);

 if(error){
  return res.status(400).json({"status":1,"message":error.details[0].message});
 } 

 const contact1 = await contact.save();

 res.status(200).json({"status":0,"message":"contact addedd","contact":contact1});
}
catch(error){
console.log(`contacts - ${error.message}`);
}
});

.save()可用於 mongoose Model的實例。 通過運行contact = {...req.body}; 你正在用一個新的普通 JavaScript 對象替換這樣的實例,所以你失去了那個功能。

您可以將req.body作為構造函數參數傳遞:

let contact = new Contact(req.body);

當您說時,您正在替換模型 Contact 的值

 let contact = new Contact();

 //Here is the problem----

 contact = {...req.body}; //<------------

 //-----------------------

 contact.userID=req.user.id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM