我找不到合适的方法来验证 mongoose 中的电子邮件唯一性。我发现没有任何实际效果。我正在考虑使用 Schema.pre,但如果是这样,我将如何编写代码呢? Mongoose 文档非常糟糕,没有描述 pre 是如何或做什么的。
如果有人能告诉我这通常是如何完成的或指出正确的方向,我将不胜感激。我不明白为什么这么简单的东西在 mongoose 中没有简单的解决方案...
最佳答案
我更喜欢在注册路径中检查电子邮件的唯一性。
这样我们就可以完全控制应该向客户端发送哪些状态代码或错误消息。
router.post("/register", async (req, res) => {
try {
const { email, password } = req.body;
let user = await User.findOne({ email });
if (user) return res.status(400).send("User already registered.");
user = new User({ email, password });
user.password = await bcrypt.hash(user.password, 10);
await user.save();
res.send("registered");
} catch (err) {
console.log(err);
res.status(500).send("Something went wrong");
}
});
关于javascript - 使用 Mongoose 验证电子邮件唯一性的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59212143/