处理所有mongoose错误,例如重复

时间:2014-01-12 17:29:23

标签: node.js validation mongoose

我想知道如何妥善处理错误,例如:

"name": "MongoError",
"err": "E11000 duplicate key error index: DB.users.$login_1  dup key: { : \"vado\" }",
"code": 11000,
"n": 0,
"connectionId": 578,
"ok": 1

目前,我已经有了一个管理错误的工作流程,而不仅仅是猫鼬错误。 从控制器,我调用我的Validator(使用node-validator)来检查请求中的每个字段(get / post),如果出现错误,它会为每个错误调用带有预定义错误消息的回调方法。

d: data, 
e: errors, 
k: key, 
m: message (key of the message), 
a: message args, 
s: status, 
t: type of error (v: validationError)

这只是为了让您理解" design"。

{
  "d": {
    "e": [
      {
        "k": "email",
        "m": "__10_14"
      },
      {
        "k": "email",
        "m": {
          "m": {
            "m": "__10_11",
            "a": [
              4,
              30
            ]
          },
          "a": [
            4,
            30
          ]
        }
      },
      {
        "k": "email",
        "m": "__10_13"
      }
    ]
  },
  "s": false,
  "t": "v"
}

因此,基本上,这个Validator能够管理所有类型的错误,可以使用mongoose.Schema或其他验证来建立模型字段,而不需要与models / db链接。

现在,我想知道mongoose错误验证,我正在寻找一种正确的方法,因为我的Validator无法处理它们。 (实际上不应该是,也许是另一个遗传Validator的MongooseValidator,但我不确定)

我找到了https://github.com/leepowellcouk/mongoose-validator,但它的作用类似于我的验证器,但它似乎无法正确处理来自"复制"这类错误的错误。

我想要做的是始终以正确的方式处理由mongoose引发的所有异常,以便每次都有预定义的消息。

我还想创建检查重复和所有内容的方法,但我认为我会在模型之间使用继承来做到这一点。

在生产中产生这些错误吗?显示数据库和路径以及所有内容? (我无法测试)

0 个答案:

没有答案