在使用db.colse()之前,如何确保db调用已完成?

var storedArticleArray = db.collection('storedArticle').find(query).toArray; console.dir(storedArticleArray); db.close(); 

我怎样才能确保console.dir(stroedArticleArray)只有在数据库完成查询并将结果存储在存储的storedArticleArray后,显示其参数?

在查询完成之前, db.close()也不closures。

这是否工作:

 var storedArticleArray = db.collection('').find(query).toArray(function() { console.dir(storedArticleArray); db.close(); }); 

在查询MongoDB数据库时,您必须使用Node.jscallback函数,因为它们是asynchronous操作。

遵循你的例子,你可以使用:

 var storedArticleArray = []; db.collection('storedArticle').find(query, function(error, data) { storedArticleArray = data.toArray; console.dir(storedArticleArray); db.close(); }); 

一旦查询完成并返回数据(或者必须始终处理的错误),将执行callback函数。 在callback中,你一定要closures数据库连接,没有问题。