在节点应用程序的后端,我想在其他用户已经注册相同的电子邮件时进行电子邮件检查。当我使用帖子方法时,它已经运行良好,但是当使用put进行更新时,当前例行程序将用户自己的电子邮件以重复的方式更改(因为他已经在数据库中注册(,我不希望这样做甚至没有任何意义,我希望在更新中,它不会被视为我正在更改的用户的电子邮件,而是要检查是否有其他具有同等电子邮件的用户。
我尝试了以下代码:
chekEmailDuplicate = (req, res) => {
User.findOne({//Tenta localizar algum usuário
where: {//onde
id: !req.body.id,
email: req.body.email
}
}).then(user => {
if (user) {
res.status(400).send("Fail -> Email is already in use!");
return;
}
}
正如我们在上面的代码中看到的,in:
id: !req.body.id
我尝试了类似于被修改的用户不同的ID之类的东西,但是它不起作用,应用程序接受重复的电子邮件相同!没有帖子是一个奇迹,但没有帖子。
一个在节点或已经知道如何解决的人可以帮助我吗?
非常感谢您!
使用$ ne
User.findOne({
where: {
id: {$ne: req.body.id}
email: req.body.email
}
}).then(user => {
if (user) {
res.status(400).send("Fail -> Email is already in use!");
return;
}
});
或
User.findOne({_id: {$ne: req.body.id}, "email": req.body.email})