5
我已經開始學習Node.js,並且有一點讓我感到有點困惑,那就是Schema驗證。驗證Mongoose 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: { : \"[email protected]\" }",
"op": {
"password": "xxx",
"email": "[email protected]",
"_id": "56895e48c978d4a10f35666a",
"__v": 0
}
這是所有有點亂,我想顯示發送到客戶端方面就像這樣:
"status": {
"text": "Email [email protected] is already taken.",
"code": 400
}
如何做到這一點?
鍵入11000的「code」值,然後解析errmsg值以獲取詳細信息。沒有你想要的那麼幹淨,但這就是你如何去做的。 – JohnnyHK