如何在猫鼬回调中读取查询?
Posted
技术标签:
【中文标题】如何在猫鼬回调中读取查询?【英文标题】:How do I read the query in a mongoose callback? 【发布时间】:2016-05-22 08:23:40 【问题描述】:我的代码通过数组上的 .forEach() 循环运行。每次迭代都会运行一个 mongoose 查询。
我的查询返回一个空对象,这不应该发生,我想知道为什么!
我不能要求回调打印使用的值,因为在 promise 解决时 forEach 循环已经完成,所以它只打印数组的最后一项(这是预期的结果)。
如何访问在 mongoose 回调中运行的查询?
array.forEach((item,i)=>
model.findOneAndUpdate(a:item.a,item).exec((err,result)=>
if(err)throw(err.stack);return;
if(!result)
throw new Error("Nothing returned for query: "+QUERY_STRING)
)
)
【问题讨论】:
【参考方案1】:从此改变:
array.forEach((item,i)=>
model.findOneAndUpdate(a:item.a,item).exec((err,result)=>
if(err)throw(err.stack);return;
if(!result)
throw new Error("Nothing returned for query: "+QUERY_STRING)
)
)
到这里:
array.forEach((item,i)=>
(function (item, i)
model.findOneAndUpdate(a:item.a,item).exec((err,result)=>
if(err)throw(err.stack);return;
console.log(item, i);
if(!result)
throw new Error("Nothing returned for query: "+QUERY_STRING)
)
)(item, i)
)
【讨论】:
这很有意义。我仍在思考“任何东西都可以是函数”的 javascript 概念。以上是关于如何在猫鼬回调中读取查询?的主要内容,如果未能解决你的问题,请参考以下文章