当我尝试通过 express 更新 mongodb 中的字段值时,在控制台中收到一些错误消息

got some error massage in console when I try to update my field value in mongodb through express

当我发送请求以更新我的 mongo 数据库中的字段值时,我的节点应用程序将崩溃。数据将更新成功,但消息不会显示我在 ( 中提供的信息 (err) => { if (err) { res.status(500).json({ error: "There was an error in server side!", }); } else { res.status(200).json({ message: "value updated successfully!", }); } } )

而不是显示上面的消息。 mongo 发给我 (const err = new MongooseError('Query was already executed: ' + str);). this message and more : MongooseError: Query was already executed: Todo.updateOne({ _id: new ObjectId("6243ed2b5e0bdc9ab780b4d9...

但我每次都使用不同的 ID 并使用不同的消息进行更新。 当我检查数据库时,旧值是否更新,但很好地更新了旧值。但是没有消息或任何我在我的控制台中的邮递员 resposnse.Also 中看不到的东西 mongodb 抛出上述错误。

发生了什么我想查看我预定义的错误消息或成功消息。

终于,我明白了答案。实际上,我是一名初级程序员和开发人员,这就是我提出这个问题并且花了很多时间来解决的原因。我通过删除 async/await 在 3-5 分钟内解决了这个问题,但我花了很多时间来挖掘为什么它在删除 async/await 后仍然有效。这是异步编程的一个基本概念,如果我们使用 async/await 我们就不必再次使用回调,或者如果我们使用回调我们就不需要 async/await 因为它只是多余的。所以,如果我们想像从

callback(err,data) =>{
res.send(data);
}

然后我们将全部内容分配到一个变量中,例如:

try{
const data=await (our code);
res.send(data);
}catch(err){
res.send(err.message);
}