【问题标题】:How to handle mongodb nodejs error in find如何在find中处理mongodb nodejs错误
【发布时间】:2022-08-18 23:12:40
【问题描述】:

我打电话给collection.find(someBadQuery),我收到来自 mongo 的错误。但它最终以未经处理的拒绝而告终。如何处理这种拒绝? 如docs 中所述,对于find() MongoDB NodeJS 驱动程序返回FindCursor 而不是promise,因此.catch() 或异步try ... catch 将不起作用。它是 EventEmmiter,但没有 error 事件。

那么如何防止未处理的拒绝并实际跟踪导致错误的查询呢?我应该把错误处理程序放在哪里? 谢谢。

    标签: node.js mongodb


    【解决方案1】:

    您可以使用回调函数。 这是一个代码示例。

    collection.find(someBadQuery, (err, data) => {
        if(err){
            //handle err
        }
    })
    

    【讨论】:

      【解决方案2】:

      要获得Promise,您需要在该FindCursor 上调用.toArray()

      const findResult = await collection.find({}).toArray();
      console.log('Found documents =>', findResult);
      

      docs 中所述

      【讨论】:

        猜你喜欢
        • 2021-06-05
        • 1970-01-01
        • 2020-10-27
        • 1970-01-01
        • 2017-10-13
        • 2021-02-19
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多