[Hỏi đáp] Phương pháp kiểm tra trùng lặp trong database(MongoDB)



  • Em có đoạn code sao có nhiệm vụ kiểm tra trùng lặp email, nhưng khi chạy thì bị báo lỗi do sử dụng res.redirect(), cho em hỏi là có cách nào để kiểm tra trùng lặp email và đẩy thông báo vào biến errors không ạ, em cảm ơn nhiều.
    req.checkBody('password', 'Password is required').notEmpty();
    req.checkBody('password2', 'Passwords do not match').equals(req.body.password);
    let errors = req.validationErrors();
    User.findOne({email:email}, function(err,user){
    if (err){
    console.log(err);
    } else if (user){
    req.flash('danger','This email is already used');
    res.redirect('users/register');
    }
    });
    if(errors){
    res.render('register', {
    errors:errors
    });
    } else if (flag == 0) {
    let newUser = new User({
    name:name,
    email:email,
    username:username,
    password:password
    });



  • User.findOne({'email' : email}, 'email')
    .then(data => {
         if(data == null){
           //Emaill này chưa tồn tại
         } else {
           //Email đã tồn tại
         }
    })
    .catch(err => {
         //nếu truy vấn thất bại hoặc giá trị đặt vào không hợp lệ
    });


  •  User
         .findOne({ email: dataSignUp.email })
          .select('email')
         .exec(function (err, userCheck) {
             if (err)
                 return res.status(403).send(err);
             if (userCheck !== null)
                 return res.status(403).send({ success: false, message: 'Email Exist !!!' });
             dataSignUp.confirm_email = getEmailConfirm();
             sendMailUser();
             resolve();
         });

Log in to reply