我如何使用任何mongodb-plugin来获得结果而不是回调函数?

时间:2014-03-30 07:42:37

标签: javascript node.js mongodb

我为nodejs找到了一些mongodb插件,但似乎总是使用回调函数来返回搜索结果,我只是想通过直接获得结果

使用此代码我无法获得正确的回报:

index.prototype.a = function(){
    var vars = {};
    vars.something1 = {};
    vars.something2 = 123;
    mongous("db.test").find({name:'shura'},function(r){
        if(r){
            vars.something3= true;
        }else{
            vars.something3= false;
        }
    });
    return vars; 
}

这段代码就是我想要的:

index.prototype.a = function(){
    var vars = {};
    vars.something1 = {};
    vars.something2 = 123;
    var result = mongo_plugin("db.test").search({name:'shura'});
    vars.something3 = result?true:false;
    return vars; 
}

如何让vars.something3作为回报存在?

1 个答案:

答案 0 :(得分:0)

node.js的卖点是它的异步性质。您应该使用awesome滚动或使用Ruby或Python等脚本语言。这是节点的方式来做你想做的事情(或者我学会了如何停止担忧并喜欢回调):

index.prototype.a = function(cb){
    var vars = {};
    vars.something1 = {};
    vars.something2 = 123;
    mongous("db.test").find({name:'shura'}, function(err, r){
        if(err) { return cb(err) };
        vars.something3 = r ? true : false;
        cb(null, vars);
    });
}