Я работаю над Restful API с node.js и mongoose. Мне нужно вернуть объект с результатами поиска. Вот мой код:Вернуть результат функции модели mongoose
var Get = function (criteria) {
var result;
Users.findOne(criteria, function(err, res){
console.log('Error: ' + err);
console.log('Results: ' + res);
result = err || !res ? err || errors['404']: res;
console.log(result);
});
console.log('Final results: ' + JSON.stringify(result));
return result;
};
Поскольку у меня были проблемы, я добавил эти console.logs, чтобы посмотреть, где результат теряется. Вот журналы:
Final results: undefined Error: null Results: { //user... }
Мне нужно, что результат должен быть возвращен. Как я могу это решить?
[Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call) –
Примечание: A будущий возможный вариант будет использовать ['await'] (https://github.com/tc39/ecmascript-asyncawait) с функциями, которые используют [ES6' Promise's] (https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Promise), при условии, что клиентский API MongoDB начнет их использовать. –
Спасибо за примечание. Я проверю его. – Leo