案例描述: 我正在node.js(使用Express),socket.io和mongoDB上构建全栈聊天应用程序。一切正常,直到用户将已经在另一个帐户中使用过的注册数据放到那一刻。我创建了两个功能:首先检查是否存在类似查询用户名的用户名,其次检查电子邮件地址。 (与db连接的所有函数都使用回调来确保正确的异步工作,我也曾尝试创建局部变量并为其分配值(t / f)并返回它,但仍然是'undefined'。)
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),但是结果为'undefined'。 在此先感谢您的帮助!