程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Mongodb 错误码和对应的 http 状态码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Mongodb 错误码和对应的 http 状态码?

开发过程中遇到Mongodb 错误码和对应的 http 状态码的问题如何解决?下面主要结合日常开发的经验,给出你关于Mongodb 错误码和对应的 http 状态码的解决方法建议,希望对你解决Mongodb 错误码和对应的 http 状态码有所启发或帮助;

因此,如果新用户尝试使用已存在的用户帐户进行注册,MongoDb 会响应 11000 error code

在 Express 中,可以这样处理:

async function signup(req,res,next){
  try{ 
  // some stuff
  }catch(err){
    if (err.code === 11000) {
      err.message = 'Email is already taken.';
      res.statusCode = 409;
    }
    return next(err);
  }     
}

对于这个例子,我决定用 409 http 状态代码来响应。

但是,我不确定这是否是处理来自 MongoDB 的几种不同代码并为每个代码分配 http 状态的好方法。

我还缺少哪些其他解决方案?

解决方法

您可以针对可能遇到的常见错误返回具体的响应。

但这真的归结为您想要的具体程度。您还需要虑为每个可能发生的错误定制响应是否真的值得。根据您的配置,其中一些可能永远不会发生

例如,如果您不使用分片集群,则 ncompatibleShardingConfigVersion 永远不会发生

此外,如果错误消息应该显示在前端,用户并不真正关心错误的内容、原因和方式。他/她知道这是行不通的,他/她不高兴。

您有多种选择:

  1. 使用条件,就像你现在正在做的那样。也许创建一个自定义错误构造函数并将条件放入其中,以避免在每个函数调用中重复自己。

  2. 向前端发送带有状态代码 500 的通用错误消息。在后端记录整个错误对象,以便您知道出了什么问题。您是真正关心错误发生的原因、内容、方式和时间的人。

就我个人而言,我会选择选项 2。

大佬总结

以上是大佬教程为你收集整理的Mongodb 错误码和对应的 http 状态码全部内容,希望文章能够帮你解决Mongodb 错误码和对应的 http 状态码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:http状态码