使用mongodb find的函数不返回结果

时间:2015-03-09 13:19:32

标签: node.js mongodb swig-template

我在Swig模板中调用函数时尝试返回Mongo结果。它不会等待mongo结果并继续呈现模板。

示例代码:

function swigfunction(){
  db.collection('contentitems').find({}).toArray(function(err, docs) {
      //generated my output 
      return myoutput;
  });
}

然后我尝试调用该函数,但返回“undefined”。

{{ swigfunction() }}

请帮忙

2 个答案:

答案 0 :(得分:1)

MongoDB API使用异步回调机制。这意味着程序将在数据库处理您的请求时继续,而不仅仅是空闲和浪费资源。当数据库的响应最终到达时,将执行回调函数return myoutput;

node.js中的常用模式是嵌套所有异步函数调用,并在最里面的回调函数中写入输出。

答案 1 :(得分:0)

您可以使用mongo-sync sync mongo-db客户端库。