Javascript 确认MongoDB数据库中是否已存在电子邮件
我编写此代码是为了检查数据库中是否已存在电子邮件:Javascript 确认MongoDB数据库中是否已存在电子邮件,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我编写此代码是为了检查数据库中是否已存在电子邮件: async store (req,res) { const email = req.body.email; let user = await User.findOne ({ email: email }); if (user) { console.log('Already exist.') }; (...) } 但它不起作用:我可以将信息存储在用户集合中,但它的电子邮件未经验证 我在用猫鼬 我做错了什么?您还没有描述您的用例,但是
async store (req,res) {
const email = req.body.email;
let user = await User.findOne ({ email: email });
if (user) {
console.log('Already exist.')
};
(...)
}
但它不起作用:我可以将信息存储在用户集合中,但它的电子邮件未经验证
我在用猫鼬
我做错了什么?您还没有描述您的用例,但是如果您希望使用mongoose避免电子邮件冲突,那么在定义对象的模式时,可以使用
unique:true
选项。然后,它将拒绝提交已存储电子邮件的任何新用户或更新用户。您需要在最后使用exec()
来实际运行查询:
let user = await User.findOne({ email: email }).exec();
另外,由于您正在使用wait
,请确保包含的函数标记为async
我能给你的信息有限,因为你只是说“它不起作用”。那没告诉我什么。你运行它却什么也没发生吗?这会给你一个错误吗?这个网站上的人不喜欢听到“它不工作”这个词。“但它不工作”定义“不工作”。你为什么认为它不起作用?我们需要更多的细节。哪个图书馆(猫鼬?)?数据库中的数据(应该匹配)是什么?您从
req.body
中获得的email
值是什么?享受:非常感谢所有建议:我编辑了这个问题,以便更清楚地了解它。您好@JDunken,谢谢您的评论。在我的用户模型中,我已经这样做了:const mongoose=require('mongoose');const UserSchema=new mongoose.Schema({(…)电子邮件:{type:String,unique:true},(…)});module.exports=mongoose.model('User',UserSchema);它成功了,非常感谢。我将“不工作”这句话编辑得更清楚、更详细。谢谢!