最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

找不到文档时Express中的Cursor.forEach挂起

运维笔记admin11浏览0评论

找不到文档时Express中的Cursor.forEach挂起

找不到文档时Express中的Cursor.forEach挂起

我正在使用MongoDB和NodeJS堆栈,尝试执行一些简单的条件逻辑。不幸的是,我将MongoDB本机驱动程序用于NodeJS,并且该项目的所有者没有选择使用Mongoose。

以下代码正在浏览我的文档,并基于'props':'value'进行过滤,并通过Express发送响应。


 let cursor = db.collection('collection').find({props: 'value' })

 cursor.forEach((doc) => {

      if (!doc) {
          return res.send('No document found with that property assigned!')
      }

      res.json(doc)
 })

当找到属性时,该方法运行良好,但是当找不到该值时,Express会挂起。有没有人修复?

回答如下:

No document found ...条件似乎永远不会触发。 if块位于一段代码内,该代码段仅在doc变量存在的情况下才会执行。

尝试将“无结果”条件设置为默认条件,或检查光标是否包含文档。

发布评论

评论列表(0)

  1. 暂无评论