Node.js + MongoDB检查电子邮件是否已存在于数据库中

时间:2017-02-19 23:50:50

标签: javascript node.js mongodb callback

此时我在写我的网站时被困了。

有一个功能:

/* check if email already exists in database */
function validateEmailAccessibility(email){

   User.findOne({email: email}).then(function(result){
        if(result!=null){

        }
   });
}

问题是,当它已经存在时,我该怎么回事?

我试图这样做,但显然会检查第二个条件,直到变量temp设置为false。

/* check if email already exists in database */
function validateEmailAccessibility(email){
   var temp;
   User.findOne({email: email}).then(function(result){
        if(result!=null){
           temp = false;
        }
   });
   if(temp === false) return false;
}

我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

您需要在validateEmailAccessibility中返回承诺:

function validateEmailAccessibility(email){

   return User.findOne({email: email}).then(function(result){
        return result !== null;
   });
}

代码中的某处:

validateEmailAccessibility(email).then(function(valid) {
  if (valid) {
    alert("Email is valid");
  } else {
    alert("Email already used");
  }
});