validationMongoose模式并显示自定义错误消息的最佳实践

我已经开始学习Node.js,有一点让我感到困惑的是Schemavalidation。

validation数据并向用户显示自定义错误消息的最佳做法是什么?

比方说,我们有这个简单的架构:

var mongoose = require("mongoose"); // create instance of Schema var Schema = mongoose.Schema; // create schema var Schema = { "email" : { type: String, unique: true }, "password" : String, "created_at" : Date, "updated_at" : Date }; // Create model if it doesn't exist. module.exports = mongoose.model('User', Schema); 

我希望注册用户具有独特的电子邮件,所以我已经添加了unique: true的我的架构。 现在,如果我想向用户显示错误消息,说明他为什么没有注册,我会收到类似这样的回应:

  "code": 11000, "index": 0, "errmsg": "E11000 duplicate key error index: my_db.users.$email_1 dup key: { : \"test@test.com\" }", "op": { "password": "xxx", "email": "test@test.com", "_id": "56895e48c978d4a10f35666a", "__v": 0 } 

这有点乱,我想显示发送到客户端就像这样:

 "status": { "text": "Email test@test.com is already taken.", "code": 400 } 

如何做到这一点?

处理mongoose中的唯一约束的错误消息的最简单的方法是使用一个插件,如mongoose美丽独特的validation 。 它使错误消息看起来像普通的validation错误消息。