2014-10-20 69 views

回答

4

1)您可以使用mongoose-unique-validator。

https://www.npmjs.com/package/mongoose-unique-validator

这使得错误处理更容易,因为当您尝试违反唯一约束而不是MongoDB发出的E11000错误时,您会得到一个Mongoose验证错误。

2) 引用在What am I doing wrong in this Mongoose unique pre-save validation? 你也可以使用预先保存方法快递

Schema.pre("save",function(next, done) { 
//Here you can search if the record already exists and return custom message. 
next(); 
}); 
0

不,在不改变的MongoDB源代码和与该新的错误信息重新编译它。您可以使用您的应用程序代码将消息换成另外一种。例如,您可以将索引构建调用包装在一个函数中,该函数在发生唯一键约束违规错误时将返回不同的错误消息。

3

您可以轻松地使用mongoose-beautiful-unique-validationunique: true验证错误定制并显示错误信息。

要做到这一点只需用包mongoose-beautiful-unique-validation

npm install --save mongoose-beautiful-unique-validation 

然后,你可以简单地把它作为一个全球性的插件(如下)或每架构。

const beautifyUnique = require('mongoose-beautiful-unique-validation'); 

mongoose.plugin(beautifyUnique); 

对于全面了解和参考,请参阅本comment并在GitHub上Readme

您可能还想使用软件包mongoose-validation-error-transform来显示Mongoose验证错误消息。