我正在使用 MERN 堆疊,我有一個問題,即使條件不成立,貓鼬 findOne 也會回傳找到的第一個物件 這是我的用戶模型
{ local:{
username,
email,
password
},
google: {
googleId,
email,
name
}
}
我有這個模式靜態資料來查找電子郵件是否存在
userSchema.statics.findByEmail = async (email) => {
const localUser = await User.findOne({ "local.email": email });
const googleUser = await User.findOne({ "goolge.email": email });
return { localUser, googleUser };
};
在我的 api 中,在我添加用戶之前,我使用 findByEmail 在我的資料庫中搜索它
router.post("/register", async (req, res) => {
const user = await User.findByEmail(req.user.email);
})
如果我的資料庫中沒有檔案,則 api 可以正常作業,但如果至少有一個檔案,它總是回傳我的資料庫中的第一個檔案,即使 req.user.email
不在我的資料庫中
uj5u.com熱心網友回復:
如果欄位未在其被查詢的模式中宣告,則會出現此問題。
請確保在您的用戶架構中存在以下欄位:“local.email”和“goolge.email”
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415440.html
標籤:
