javascript中带有回调的闭包不起作用
尝试使用函数javascript中带有回调的闭包不起作用,javascript,Javascript,尝试使用函数isNameInDbId查看名称是否在mongoDB的列表中。我想我(可能?)需要一个关闭,但我无法让它工作,它目前出错了。如果我不使用闭包,函数回调就不知道变量名称,或者我可以用不同的方法来实现。我试过几种方法 代码: 功能: function isNameInDbId(name, dbID, callback) { user_collection.findOne({_id : dbID}, (function(err, doc) { var names =
isNameInDbId
查看名称是否在mongoDB的列表中。我想我(可能?)需要一个关闭,但我无法让它工作,它目前出错了。如果我不使用闭包,函数回调就不知道变量名称
,或者我可以用不同的方法来实现。我试过几种方法
代码:
功能:
function isNameInDbId(name, dbID, callback) {
user_collection.findOne({_id : dbID}, (function(err, doc) {
var names = [];
var success = false;
if(doc) {
names = doc.names;
if(names.indexOf(name))
success = true;
}
callback(success);
})(name);
}
正如Bergi所说,(名称)
看起来是错误的
函数isNameInDbId(名称、dbID、回调){
user_collection.findOne({u id:dbID},(函数(err,doc){
变量名称=[];
var成功=false;
国际单项体育联合会(doc){
名称=文件名;
if(名称.索引OF(名称))
成功=真实;
}
回调(成功);
});
}
不幸的是,一个深夜,我的a.indexOf(b)
和a
和b
走错了路,这导致出现了一个异常错误,说名称
不明-所以我想我可能需要闭包。
拆下封盖并转动indexOf
将给出正确的代码,如下所示:
function isNameInDbId(name, dbID, callback) {
user_collection.findOne({_id : dbID}, function(err, doc) {
var names = [];
var success = false;
if(doc) {
names = doc.names;
if(name.indexOf(names))
success = true;
}
callback(success);
});
}
那个(名称)
看起来是错误的,应该省略。
function isNameInDbId(name, dbID, callback) {
user_collection.findOne({_id : dbID}, function(err, doc) {
var names = [];
var success = false;
if(doc) {
names = doc.names;
if(name.indexOf(names))
success = true;
}
callback(success);
});
}