检查mongo文件是否已存在的最有效方法?查询现有或设置索引是否唯一?

时间:2016-09-18 13:40:08

标签: node.js mongodb mongoose

我正在查看一个有点流行的授权实用程序,并注意到这一点:

User.findOne({
        email: req.body.email.toLowerCase()
    }, function (err, existingUser) {
        if (existingUser) {
            return res.status(409).send({
                message: 'Email is already taken'
            });
        }

将用户电子邮件设置为唯一索引并为此处理错误,而不是查询以检查已存在的错误,是否更有效?

1 个答案:

答案 0 :(得分:0)

最好检查,而不是依赖mongodb错误。 因为如果驱动程序内部发生了某些变化,你就不会意识到你会弄得一团糟。

例如。 Mongo 4.0版不会在唯一索引上抛出错误,只是用相应的字段替换数据。

或者某些开发人员更改createNewUser方法而不是保存它现在使用更新如果我们有错误。

或类似的东西。

通过验证电子邮件字段,您将在以后阻止所有这些问题和许多痛苦。

希望这会有所帮助。