我已经开始学习Node.js了,有一点让我感到困惑的是Schema验证.
验证数据并向用户显示自定义错误消息的最佳做法是什么?
假设我们有这个简单的Schema:
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 }
怎么做到这一点?