这里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()
在猫鼬Model实例上可用。通过运行,contact = {...req.body};
您用一个新的普通JavaScript对象替换了该实例,因此您失去了该功能。
您可以req.body
改为作为构造函数参数传递:
let contact = new Contact(req.body);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句