node.js – post响应不等待callback完成

我正在研究node.js http服务器。 服务器连接到mongodb。 我正在向服务器请求一个post请求,以从mongodb获取文档。 但是post响应不等待mongodbcallback完成。 因此,我没有得到需要的输出在客户端。 如何处理这个?

http.createServer(function(request, response) { if(request.method == "POST") { var body = ''; request.on('data', function(chunk) { console.log(chunk.toString()); body += chunk; }); request.on('end', function() { MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) { if(err) { console.log("We are not connected"); } else { var sysInfo = db.collection('sysInfo'); var jsonObj = sysInfo.find().toArray(); response.writeHead(200, {'Content-Type': 'text/plain'}); response.end(jsonObj); } }); }) } }); 

toArray是asynchronous的,所以它通过callback来提供结果,而不是返回它们。

那部分应该是:

 sysInfo.find().toArray(function(err, docs) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end(docs); });