为了账号安全,请及时绑定邮箱和手机立即绑定

Node.js + Mongoose 让 Model.find 方法同步执行

Node.js + Mongoose 让 Model.find 方法同步执行

桃花长相依 2019-04-08 11:17:57
我在用Node.js+Mongoose+MongoDB开发一个小程序,其中有一个操作是这样的:functionget(query){query=query||null;if(query===null){returnthis.model.find({},function(err,docs){returndocs;});}else{returnthis.model.find(query,function(err,docs){returndocs;}}}目标:get是我用来读取Collection里面的文档的,query是查询条件,如果没有传入查询条件,则返回整个Collection;如果传入了查询条件,则按条件查询。错误:因为this.model.find方法是异步的,在find返回查询结果之前,get函数已经return了,所以我总是得到undefined。请问有什么办法能让get得到find的返回值吗?
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

nodejs整个设计思路都是异步的,不要用同步的思维去写。
varurl=require('url');
functionget(query,callback){
query=query||{};
this.model.find(query,callback);
}
httpServer.on('request',function(req,res){
varquery=url.parse(req.url,true).query;
get(query,function(err,doc){
if(err){
res.end(err);
return;
}
res.end(doc)
})
})
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 319 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信