我最近遇到了node.js/MongoDB模式:collection.find({。。。})。exec(),据我所知,它返回一个承诺。
我在代码中使用:await Collection.Find({。。。})
这些有什么不同? 是否应该使用:await collection.find({。。。})。exec()?
在Mongoose中,查询是组合的,但不一定立即运行,它们返回一个查询对象,您可以使用它添加或链接其他查询,然后一起执行。
猫鼬查询不是承诺。 它们有一个.then()
函数和async/await
作为方便。 对于回调,也可以使用.exec()
代替.then()
。
你应该用哪一个?
等待收集。查找({。。。})
等待Collection.find({。。。}).exec()
答:两个都好。
两者都有一些功能,所以您可以根据您的方便使用这两个中的任何一个。
但是,如果您使用.exec()
,它将在出现错误/异常时为您提供更好的堆栈跟踪。 更多信息请点击这里。