-3

当我在 Swig 模板中调用函数时,我试图返回 Mongo 结果。它不等待 mongo 结果并继续渲染模板。

示例代码:

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

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

{{ swigfunction() }}

请帮忙

4

2 回答 2

1

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

node.js 中的常用模式是嵌套所有异步函数调用并将输出写入最内层的回调函数中。

于 2015-03-09T13:42:54.593 回答
1
于 2017-04-16T21:08:00.053 回答