簡體   English   中英

Joi 在驗證貓鼬對象時拋出錯誤 -

[英]Joi is throwing error while validating mongoose object -

當我創建一個 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}`);
}

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

問題是您正在嘗試驗證具有自己內部屬性的貓鼬模式類。 這就是您在錯誤中看到的內容。 你在這里有兩個選擇

  • 不要傳遞聯系人對象,而是將req.body傳遞給您的驗證函數。

  • 或者從聯系模式中提取屬性並將該對象傳遞給驗證函數。

希望有幫助。

暫無
暫無

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

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