node.js: expressjs с mongoose

Я работаю над своим первым приложением node.js / express / mongoose, и у меня возникла проблема из-за механизма асинхронизации из node.js. Кажется, я делаю это неправильно ...

Вот тестовый маршрут, который я определил с помощью express:

app.get('/test', function(req, res){
  var mod = mongoose.model('MyModel');
  mod.find({},function(err, records){
    records.forEach(function(record){
      console.log('Record found:' + record.id);
      // res.send('Thing retrieved:' + record.id);
    });
  });
});

Когда я выдаю http: // localhost / test , я хочу получить список записей типа MyModel в ответе.

Приведенный выше код работает нормально, но когда дело доходит до возврата всего этого списка клиенту ... он не работает (закомментированная строка res.send) и возвращает только первую запись.

Я новичок в node.js, поэтому не знаю, стоит ли встраивать несколько функций обратного вызова в первую функцию обратного вызова app.get. Как мне вернуть весь список?

Есть идеи?

6
задан MPelletier 16 April 2011 в 11:28
поделиться