我正在使用node.js http服务器。服务器已连接到mongodb。我正在向服务器请求发布请求以从mongodb获取文档。但是帖子的响应并没有等待mongodb回调完成。因此,我没有在客户端获得所需的输出。如何处理?
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);
}
});
})
}
});
答案 0 :(得分:2)
toArray
是异步的,所以它通过回调提供结果而不是返回它们。
那部分应该是:
sysInfo.find().toArray(function(err, docs) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end(docs);
});