2016-04-15 2 views
1

Я хочу обработать свои данные, которые я удалил с моего mongodb, прежде чем я верну его через api.как использовать данные, полученные из mongodb, а не возвращать его

Моего апи-запрос, как это:

.get('/users', function(req, res){ 
    var users = []; 
    User.find({}, function(err, data){ 
     if(err) res.send(err); 
     users = data; 
    } 

    // here I want to do some things with the users 

    res.json(users); 
} 

Однако, пользователи получили неопределенный ... Я думаю, что код работает вперед, до того, как ответ вернулся в efectively заполнить «пользователь» Что i правильный способ подождать, пока переменная не будет заполнена, чтобы иметь возможность использовать содержимое? Или это не ожидающий матер, но другая ошибка?

+0

Я знаю, что это будет дублировать вопрос, но я не знаю, что искать ... (не было ID это было синхронное ...) – stijnpiron

ответ

2
User.find({}, function(err, data){ 
     if(err) res.send(err); 
     users = data; 
    } 

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

Так попробовать это:

.get('/users', function(req, res){ 
     var users = []; 
     User.find({}, function(err, data){ 
      if(err) res.send(err); 
      users = data; 

     // do some things with the users 

     res.json(users); 
     }  
}