首页 > 解决方案 > 尽管一切都正确,mongoDB 方法仍返回 undefined

问题描述

案例描述: 我正在 node.js(使用 Express)、socket.io 和 mongoDB 上构建一个全栈聊天应用程序。一切正常,直到用户将已在另一个帐户中使用的注册数据放入其中。我创建了两个函数:首先检查用户名(如查询一个)是否已经存在,第二个检查电子邮件地址。(与 db 连接的所有函数都使用回调来确保正确的异步工作,我也尝试创建局部变量并为其分配一个值(t/f)并返回它,仍然是“未定义”)。

usernameExists = function(username){
    var query = {
        username: username
    }
    mongodb.connect(dburl, {useNewUrlParser: true, useUnifiedTopology: true}, function(err, db){
        var chat = db.db('chat');
        chat.collection('users').countDocuments(query, function(err, number){
            if (number > 0){
                return true;
            } else {
                return false;
            }
        });
    });
}

电子邮件一:

emailExists = function(email){
    var query = {
        email: email
    }
    mongodb.connect(dburl, {useNewUrlParser: true, useUnifiedTopology: true}, function(err, db){
        var chat = db.db('chat');
        chat.collection('users').countDocuments(query, function(err, number){
            if (number > 0){
                return true;
            } else {
                return false;
            }
        });
    });
}

问题描述: 当用户在前端将数据放入表单时,即使在数据库中创建完全相同的文档。我已尝试记录此方法的数字和结果:数字似乎很好(> 0),但结果是“未定义”。 提前感谢您的帮助!

标签: javascriptmongodbmongodb-querycrud

解决方案


推荐阅读