Вы можете попробовать это.
Самое главное (возможно, ваша ловушка?) Имейте в виду, что db.view просто зарегистрирует закрытие обратного вызова и продолжит. Не закрывайте свой запрос (вызывая req.end) нигде вне этого закрытия. Если вы это сделаете, вполне вероятно, что запрос был закрыт, так как БД возвращается. Как только объект ответа http закрыт, все записанные в него данные теряют силу.
var cradle = require('cradle');
var db = new cradle.Connection().database('guestbook');
app.get('/guestbook', function(req, res) {
// Register callback and continue..
db.view('guestbook/all', function(err, guests) {
// console.log('The waiting had an end.. here are the results');
guests.forEach(function(guest) {
if (guest.name) {
res.write('Guest N: ' + guest.name);
}
});
// Close http response (after this no more output is possible).
res.end('That is all!')
});
console.log('Waiting for couch to return guests..');
// res.end('That is all!'); // DO NOT DO THIS!!!
});