我想跟踪node.js服务器中集合中的文档数量 使用mongodb驱动程序。我可以插入,删除和更新,但是当我尝试计数时,它会起作用,直到我尝试存储该值,它什么都不返回。
这是我的代码:
var db_collection = db.collection('collection');
var countCollections = function () {
var response_count_collections = null;
db_mensajes.count(function(err,number_of_collections){
if (err){
console.log(err);
} else {
response_of_collections = number_of_collections;
console.log('Number of collections: '+number_of_collections);
}
});
return response_count_collections;
};
它正确记录了number_of_collections,但它没有返回正确的值。在我的例子中,它返回null(我如何定义我的var response_count_collections;
)以及我是否
尝试在db_collections.count()的回调中return number_of_collections;
,如下所示:
var db_collection = db.collection('collection');
var countCollections = function () {
var response_count_collections = null;
db_mensajes.count(function(err,number_of_collections){
if (err){
console.log(err);
} else {
console.log('Number of collections: '+number_of_collections);
return number_of_collections;
}
});
};
它返回我" undefined"。有没有办法达到我想要的目的?
答案 0 :(得分:1)
因为它在函数完全执行之前返回变量。
如果您希望它是异步的,那么您将不得不学习使用某些节点模块来控制程序的流程,例如 async 。
查看this问题,它显示了如何使用回调正确地从异步函数返回值。