将上下文添加到Mongoose回调

时间:2012-01-13 22:42:32

标签: javascript node.js mongoose

将上下文添加到Model查询中使用的回调的正确方法是什么?例如......

function doSomething(param) {
    var magic = function(context, err, results) {
        if(err) { console.log('fail'); }
        else {
            // do the magic with context and results
        }
    }

    for( var i=0; i < 5; i++ ) {
        var myObject = {'secret' : i};
        MyModel.find({number:param[i]}, magic(myObject, err, results));
    }
}

我想遍历每个查询的结果并拥有myObject的上下文。上述解决方案不起作用。 '错误'和'结果'没有定义。

我通常使用匿名函数执行此操作,但我不能依赖for循环中的上下文。

1 个答案:

答案 0 :(得分:5)

errresults未定义,因为您要将名为errresults的变量传递给您从未定义的magic

MyModel.find无法对magic的结果执行任何操作,因为您没有从中返回任何内容,您应该返回一个需要err和{{1}的函数}。

result