无法处理来自我应用程序服务器端的错误

时间:2020-03-17 15:20:00

标签: javascript node.js reactjs express

我在Exress js中使用mongodb查询,但无法处理任何错误,例如我有查询

db.collection('prowd').deleteOne({_id: ObjectID( id)}, (err, result) => {
    if (err){return console.log(err)}
    else res.send(result)
  })

即使我的数据库中没有任何“ prowd”集合,为什么我在控制台中没有看到任何错误?

当我对此API提出要求时,从反应端获得成功消息

 onDeleteProduct(id) {
    axios
      .post("/delete-product", {
        id
      })
      .then(() => {
        Swal.fire({
          icon: "success",
          title: "Product Deleted Successfully !",
          showConfirmButton: false,
          timer: 1500
        });
      })
      .catch(err => {
        Swal.fire({
          icon: "success",
          title: "Task failed !",
          showConfirmButton: false,
          timer: 1500
        });
      });
  }

对于我写的查询,我应该得到

任务失败

1 个答案:

答案 0 :(得分:0)

查询成功执行,未删除任何记录。因此,我们没有错误,这意味着err == null,但是您可以看到result.result.n将是0,这意味着 受影响的记录数

您可以看到以下代码:

db.collection('prowd').deleteOne({ _id: ObjectID(id) }, (err, result) => {
    if (err) { return console.log(err) }
    console.log(result.result.n); // ==> that is 0 if not exist any record
})

关于为什么我们没有任何集合甚至没有数据库,但是Mongo仍然可以成功执行的原因,那就是Mongo不需要关于集合或数据库存在的约束,它是NoSQL。

感谢您阅读:D