Javascript 回调节点js中未定义的响应?
我试图调用一个函数,从集合中检索所有文档并返回数据。现在,一切正常,但出于某种原因,我从函数回调中得到了一个未定义的响应。我可能做错了什么Javascript 回调节点js中未定义的响应?,javascript,node.js,Javascript,Node.js,我试图调用一个函数,从集合中检索所有文档并返回数据。现在,一切正常,但出于某种原因,我从函数回调中得到了一个未定义的响应。我可能做错了什么 var findImages = function(db, callback) { var s =""; db.collection('imageinfo', function(err, collection) { collection.find().toArray(function(err, items) {
var findImages = function(db, callback) {
var s ="";
db.collection('imageinfo', function(err, collection) {
collection.find().toArray(function(err, items) {
for(var i=0;i<items.length;i++){
console.log("imagename",items[i].imagename);
s =s + items[i].imagename+",";
}
if(i==items.length){
callback(s);
}
});
});
};
app.get("/fetchrecords",function(req,res){
console.log("entered");
findImages(db,function(req,res){
console.log("res",res);
});
res.end("Sent records");
});
我从函数回调中得到一个未定义的响应
调用回调时,findImages的回调只返回一个参数
但在回调定义中,您需要记录第二个参数。相反,只记录第一个参数
findImages(db,function(res){
console.log("res",res);
});
我永远不会和items.length一样。因为原因1i不在for循环中,所以它超出了范围。 原因2,即使我在你的循环中,你的循环也会给我一个items.length-1的最大值,因为你使用。。。functionerr,items{if err return callbackerr。。。。
var findImages = function(db, callback) {
var s ="";
db.collection('imageinfo', function(err, collection) {
collection.find().toArray(function(err, items) {
var i = 0;
while( i<items.length){
console.log("imagename",items[i].imagename);
s =s + items[i].imagename+",";
i++;
}
callback(s);
});
});
};