试图检查用户在注册步骤中提供的电子邮件是否已经存在于我的Mongo Atlas数据库中。这是我的代码。我收到所有电子邮件的response.status(409),无论数据库中是否存在电子邮件。谢谢,感谢您的投入。
const userExists = await checkIfUserExists(email);
if (userExists) return res.status(409).json(message.fail('User with this email already exists.'));
async function checkIfUserExists(email) {
return User.findOne({ email: email })
.then( () => true)
.catch(() => false);
}
答案 0 :(得分:0)
尝试一下:
async function checkIfUserExists(email) {
return User.findOne({ email: email })
.then(user => user ? true : false)
.catch(() => false);
}
我不认为猫鼬在找不到用户时会抛出错误。它将仅在您的回调中返回null或未定义。
答案 1 :(得分:0)
即使没有找到用户,您也将返回true
const userExists = await checkIfUserExists(email);
if (userExists) return res.status(409).json(message.fail('User with this email already exists.'));
async function checkIfUserExists(email) {
const user = await User.findOne({ email });
return !!user;
}