我要检查“用户”集合中是否已存在电子邮件:
我有这个模型:
const isEmailExists = async (value) => {
const res = await User.countDocuments({ email: value });
return res > 0;
}
const User = mongoose.model('User', {
email: {
type: String,
required: true,
validate(value) {
isEmailExists(value).then(res => {
if (res) {
throw new Error('Email already exists');
}
})
}
}
});
我在快速路由器上使用了post方法:
router
.route('/register')
.get((req, res) => {
res.sendFile(publicDirPath + '/auth/register.html');
})
.post(async (req, res) => {
const user = new User(req.body);
try {
const saveUser = await user.save();
res.send(saveUser);
} catch (error) {
res.send(error);
}
});
由于某种原因,它不起作用,并且无论如何都已添加了用户。
我在做什么错了?
答案 0 :(得分:0)
如果要检查是否存在具有特定条目/值的文档,可以执行以下操作:
function emailExists(value) {
User.findOne({email: value}).then((err, user) => !!user)
}