Я работаю над http-узлом node.js. Сервер подключен к mongodb. Я запрашиваю почтовый запрос на сервер для получения документов от mongodb. Но ответ сообщения не ждет завершения обратного вызова mongodb. И поэтому я не получаю требуемый вывод на стороне клиента. Как справиться с этим?node.js - ответ отклика не ждет завершения обратного вызова
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);
}
});
})
}
});
Вы получаете ошибку? Я спрашиваю, потому что обратный вызов метода mongoose 'connect' просто получает аргумент' error'. Итак, когда вы делаете 'db.collection ('sysInfo')', вы должны получить ошибку (db является 'undefined'). –
Нет. У меня нет ошибок. Но до того, как код достигнет response.end (jsonObj), пост-ответ будет получен у клиента, который имеет текущую html-страницу в качестве своего содержимого. –
Получил это. Ответ, предоставленный @JohnnyHK, идеален. Я просто смутился тегом 'mongoose' в вашем вопросе, поэтому я подумал, что вы пытаетесь напрямую подключиться через' mongoose'. Но потом я понял, что вы используете собственный драйвер mongodb. –