Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确认MongoDB数据库中是否已存在电子邮件_Javascript_Node.js_Mongodb - Fatal编程技术网

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);它成功了,非常感谢。我将“不工作”这句话编辑得更清楚、更详细。谢谢!