gpt4 book ai didi

javascript - Joi 在验证 mongoose 对象时抛出错误 -

转载 作者:行者123 更新时间:2023-12-02 21:36:32 25 4
gpt4 key购买 nike

当我创建 Contact 类型的对象(这是 MongoDB 模式的模型)时,它会抛出一些奇怪的错误,如下所示。我使用 Joi 的目的是进行客户端验证,即传入请求。

这里 auth 是一个中间件,用于验证 jwt 并从 jwt 中获取 id。

它显示了奇怪的错误,例如 - **“$__”是不允许的。不允许使用“isNew”。 “错误”是不允许的。不允许使用“_doc”。不允许使用“$locals”。不允许“$op”**

router.post('/',auth,async (req,res)=>{
try{
// console.log(`contact - ${JSON.stringify(req.body)}`);
let contact = new Contact({
firstName : req.body.firstName,
lastName : req.body.lastName,
email : req.body.email,
address : req.body.address,
country : req.body.country,
isBookMark : req.body.isBookMark,
});
// console.log(`before contact - ${JSON.stringify(contact)}`);
// // contact = {...req.body};
// console.log(`before after - ${JSON.stringify(contact)}`);
contact.userID=req.user.id;
// ?console.log(`contact - ${(contact)}`);

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

enter image description here

enter image description here

enter image description here

最佳答案

问题是您正在尝试验证具有自己的内部属性的 Mongoose 模式类。这就是您在错误中看到的内容。这里你有两个选择

  • 不要传递联系对象,而是将 req.body 传递给您的验证函数。

  • 或者从联系人架构中提取属性并将该对象传递给验证函数。

希望有帮助。

关于javascript - Joi 在验证 mongoose 对象时抛出错误 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60479481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com