我为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作为回报存在?
答案 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);
});
}