栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将查找查询中的结果猫鼬返回给变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将查找查询中的结果猫鼬返回给变量

有几种方法可以实现您想要的。

1.使用猫鼬查询

在这种策略中,您的函数返回一个Mongoose查询,您以后可以

exec
使用它来调用该方法并使用它来获取结果。

function getJedisQuery(name){   var query = Jedi.find({name:name});   return query;}

然后,您可以简单地使用它:

var query =  getJedisQuery('Obi-wan');query.exec(function(err,jedis){   if(err)      return console.log(err);   jedis.forEach(function(jedi){      console.log(jedi.name);   });});

2.使用类似猫鼬的诺言对象

Moogose为类似诺言的对象提供支持。您所要做的只是有点类似于我在上面所做的事情,但是这次,您在

exec
没有回调的情况下调用了该方法。

function getJedisPromise(name){   var promise = Jedi.find({name:name}).exec();   return promise;}

然后,您只需执行以下操作即可使用它:

var promise = getJedisPromise('Luke');promise.then(function(jedis){   jedis.forEach(function(jedi){      console.log(jedi.name);   });})

正如此答案的注释部分中突出显示的那样,这些对象实际上不是诺言,需要考虑在内(请参阅查询不是诺言)。

3.使用猫鼬流

最后,猫鼬还支持流,并且流是事件发射器。因此,您可以获取流,然后订阅“数据”和“错误”事件。像这样:

function getjedisStream(name){   var stream = Jedi.find({name:name}).stream();   return stream;}

然后,您可以简单地执行以下操作:

var stream = getJedisStream('Anakin');stream.on('data', function(jedis){   jedis.forEach(function(jedi){      console.log(jedi.name);   });});stream.on('error', function(error){    console.log(error);});

来源,以供将来参考。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595074.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号