Node.js NodeJS自定义验证程序+;异步数据库调用

Node.js NodeJS自定义验证程序+;异步数据库调用,node.js,validation,mongoose,Node.js,Validation,Mongoose,我正在组装一个自定义验证器,以检查特定集合(userSchema)是否包含特定电子邮件(值): 以下是检查数据库的代码: async function findEmailInCollection(email, schema) { return new Promise((resolve, reject) => { schema.findOne({ email:email }, function(error, user) { if (erro

我正在组装一个自定义验证器,以检查特定集合(userSchema)是否包含特定电子邮件(值):

以下是检查数据库的代码:

async function findEmailInCollection(email, schema) {

    return new Promise((resolve, reject) => {

        schema.findOne({ email:email }, function(error, user) {
            if (error)
                reject(false);

            if (!user) {
                reject(false);
            }                

            resolve(true);
      });

    });

}

当FindEmailCollection解析为TRUE(即正确设置IF语句)时,它似乎可以工作,但如果IF语句返回FALSE,它就不能解析为FALSE-为什么会这样?

当用户不存在时,拒绝的原因是什么?你就不能解决(错)
async function findEmailInCollection(email, schema) {

    return new Promise((resolve, reject) => {

        schema.findOne({ email:email }, function(error, user) {
            if (error)
                reject(false);

            if (!user) {
                reject(false);
            }                

            resolve(true);
      });

    });

}