gpt4 book ai didi

javascript - 类型错误 : cb is not a function

转载 作者:行者123 更新时间:2023-12-05 05:10:11 25 4
gpt4 key购买 nike

我卡住了。我不断收到相同的 cb is not a function 错误。这是我的错误:

TypeError: cb 不是一个函数

我几天前才开始学习javascript,所以我很新。我只是在观看 youtube 视频,这些视频为我的应用程序做我需要做的事情,我写他们写的东西。到目前为止一切顺利,有一些问题我设法自己解决了。但是这个我想不通。因此,我们将不胜感激。

var isValidPassword = function(data,cb) {
db.users.find({username:data.username,password:data.password},function(err,res) {
if (res.length > 0) {
return cb(true);
} else {
return cb(false);
}
});
}

var isUsernameTaken = function(data,cb) {
db.users.find({username:data.username},function(err,res) {
if (res.length > 0) {
return cb(true);
} else {
return cb(false);
}
});
}

var addUser = function(data,cb) {
db.users.insert({username:data.username,password:data.password},function(err) {
return cb();
});
}

io.on('connection', (sock) => {
sock.id = Math.random();
SOCKET_LIST[sock.id] = sock;
console.log('someone connected');

sock.on('signIn', function(data) {
if (isValidPassword(data)) {
sock.emit('signInResponse', {success:true});
} else {
sock.emit('signInResponse', {success:false});
}

});

sock.on('signUp', function(data) {
if (isUsernameTaken(data)) {
sock.emit('signUpResponse', {success:false});
} else {
addUser(data);
sock.emit('signUpResponse', {success:true});
}

});

});

我一直收到这个错误:

TypeError: cb is not a function
at C:\Users\user\Desktop\Mekkie\mekkie\testlogin.js:32:19
at C:\Users\user\Desktop\Mekkie\mekkie\node_modules\mongojs\lib\cursor.js:73:24
at AsyncResource.runInAsyncScope (async_hooks.js:188:21)
at runInAsyncScope (C:\Users\user\Desktop\Mekkie\mekkie\node_modules\mongojs\lib\cursor.js:195:16)
at C:\Users\user\Desktop\Mekkie\mekkie\node_modules\mongojs\lib\cursor.js:205:5
at handleCallback (C:\Users\user\Desktop\Mekkie\mekkie\node_modules\mongojs\node_modules\mongodb\lib\utils.js:120:56)
at C:\Users\user\Desktop\Mekkie\mekkie\node_modules\mongojs\node_modules\mongodb\lib\cursor.js:683:5
at handleCallback (C:\Users\user\Desktop\Mekkie\mekkie\node_modules\mongojs\node_modules\mongodb-core\lib\cursor.js:171:5)
at setCursorNotified (C:\Users\user\Desktop\Mekkie\mekkie\node_modules\mongojs\node_modules\mongodb-core\lib\cursor.js:515:3)
at C:\Users\user\Desktop\Mekkie\mekkie\node_modules\mongojs\node_modules\mongodb-core\lib\cursor.js:599:16

最佳答案

欢迎来到 Stackoverflow,cb 通常被称为回调函数以传递给另一个函数,我认为在您的代码中您不需要这个。您可能引用了 Socket.io 或 MongoDB 的文档中的代码,它们经常使用这些文档将回调函数作为结果传递。

我从你的代码中看到你只需要传递 true/false 作为 db 操作的结果,所以只需从你的函数中删除 cb 参数并只返回 true/false:

var isValidPassword = function(data) {
db.users.find({username:data.username,password:data.password},function(err,res) {
if (res.length > 0) {
return true;
} else {
return false;
}
});
}

var isUsernameTaken = function(data) {
db.users.find({username:data.username},function(err,res) {
if (res.length > 0) {
return true;
} else {
return false;
}
});
}

var addUser = function(data) {
db.users.insert({username:data.username,password:data.password},function(err) {
if (err) {
return false;
} else {
return true;
}
});
}

关于javascript - 类型错误 : cb is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56927318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com