保存用户时,MongoDB无效的电子邮件和密码

时间:2018-06-19 07:19:15

标签: node.js mongodb mongoose

我遇到了一个问题,当我尝试创建新用户时,我遇到以下错误:

ValidationError: User validation failed: 0.password: Path {0.password {1}} {0.email {1}}

现在端点曾经工作过,我想它与db本身有什么关系,但是我不知道我的生活会弄清楚该怎么做。

我当然传递了有效数据。

这是模型和有效载荷:

is required., 0.email: Path

和要保存的有效负载(这是在保存之前调试的)是:

is required.

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

我认为你正在失去这个"这个"上下文。

userSchema.pre('save', function(next) {
    var user = this;

    // generate a salt
    bcrypt.genSalt(10, function(err, salt) {
        if (err) return next(err);

        // hash the password using our new salt
        bcrypt.hash(user.password, salt, function(err, hash) {
            if (err) return next(err);

            // override the cleartext password with the hashed one
            user.password = hash;
            next();
        });
    });
});

答案 1 :(得分:0)

结束搞清楚问题。 有两个:

  1. 如果字段未正确传递,则BaseSchema(此处未列出)存在问题。
  2. 然后出现错误:E11000 duplicate key error index: chat-app1.users.$0.email_1 dup key: { : null }' 这让我相信这是一个索引问题。转储集合索引
  3. 修复基础并清除索引后,它们全部再次运行