Намерих грешката. Беше по-скоро концептуален:имам работа с асинхронни повиквания и се опитвам да върна резултата от друга функция и не знам кога ще се изпълни. Така че това, което се случва, е да направя заявката за изпълнение на заявката за db и да върна резултата, който се оказва нулев. Този код:
getNinjas : function(){
var res = null;
Ninja.find({},'name skill',function(err,docs){
if (err)
console.log('error occured in the database');
console.log(docs);
});
return res;
}
връща нула, но! console.log(docs) отпечатва на конзолата всички стойности от базата данни, което се опитвах да направя. Сега трябва да направя промени, най-вероятно да предам обратно извикване, което ще се изпълни при получаване на резултатите.
С промените кодът изглежда така:
getNinjas : function(res){
var twisted = function(res){
return function(err, data){
if (err){
console.log('error occured');
return;
}
res.send('My ninjas are:\n');
console.log(data);
}
}
Ninja.find({},'name skill',twisted(res));
}
Така че мога да предам обекта за отговор, за да мога да изпратя името на моите нинджи :)