Node.js Mongoose在save()中处理重复时出错

Node.js Mongoose在save()中处理重复时出错,node.js,mongoose,Node.js,Mongoose,我试图减少代码重复。当我从猫鼬错误开始时,问题就出现了。我有6个函数使用相同的mongoosesave()方法。每次保存时,我都会检查错误,并切换到4种情况,并且在使用保存方法的每个函数中都会重复此块 只有一个功能的最好方法是什么 我应该覆盖save方法并将响应接口传递给覆盖的方法,然后响应错误。但实际上,在相同的情况下,它不是有效的(如果抛出一些错误,我应该做其他事情,而不是用验证错误响应用户)。我想创建一个带有错误的全局对象(键:code error,值:我必须发送给用户的错误) 或者重复处

我试图减少代码重复。当我从猫鼬错误开始时,问题就出现了。我有6个函数使用相同的mongoose
save()
方法。每次保存时,我都会检查错误,并切换到4种情况,并且在使用保存方法的每个函数中都会重复此块

只有一个功能的最好方法是什么

  • 我应该覆盖save方法并将响应接口传递给覆盖的方法,然后响应错误。但实际上,在相同的情况下,它不是有效的(如果抛出一些错误,我应该做其他事情,而不是用验证错误响应用户)。我想创建一个带有错误的全局对象(键:code error,值:我必须发送给用户的错误)

  • 或者重复处理错误开关是一种不错的做法

  • 这是重复代码

    if (err) {
        if (err.name == 'ValidationError' && err.errors.username && err.errors.username.kind == 'unique')
                return reply('This username is already taken');
        else if (err.name == 'ValidationError' && err.errors.email && err.errors.email.kind == 'unique')
            return reply('There is already a user with this email');
        return callback(err);
    } 
    

    您能给我们看一下您的代码片段吗?只要错误处理函数没有任何副作用,您就可以传递相同的函数。因此,将响应接口传递给save方法不是问题吗?是的,不是。确保检查它不会更改任何全局变量