我发现了问题。这更多是一个概念上的问题:我正在处理异步调用,并试图从另一个函数返回结果,并且不知道何时执行。因此,发生的事情是我请求执行db查询并返回结果,结果为null。这段代码:
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;}返回null,但是!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));}这样,我就可以传递响应对象,以便发送忍者的名字:)



