2016-01-03 6 views
5

मैंने नोड.जेएस सीखना शुरू कर दिया है और एक चीज जो मुझे थोड़ा उलझन में है वह स्कीमा सत्यापन है।मोंगोस स्कीमा को सत्यापित करने और कस्टम त्रुटि संदेश प्रदर्शित करने के लिए सर्वोत्तम अभ्यास

डेटा को सत्यापित करने और उपयोगकर्ता को कस्टम त्रुटि संदेश प्रदर्शित करने का सबसे अच्छा अभ्यास क्या होगा?

चलो कहते हैं कि हम इस सरल स्कीमा करते हैं:

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[email protected]\" }", 
    "op": { 
     "password": "xxx", 
     "email": "[email protected]", 
     "_id": "56895e48c978d4a10f35666a", 
     "__v": 0 
    } 

यह सब एक छोटा सा गन्दा है और मैं ग्राहक के लिए भेजने के लिए प्रदर्शित करना चाहते हैं पक्ष इस तरह कुछ:

"status": { 
    "text": "Email [email protected] is already taken.", 
    "code": 400 
} 

इसे कैसे पूरा करें?

+0

11000 के 'कोड' मान को बंद करें और फिर विवरण प्राप्त करने के लिए 'errmsg' मान को पार्स करें। जितना चाहें उतना साफ नहीं है, लेकिन इस तरह आप इसे करते हैं। – JohnnyHK

उत्तर

0

मोंगोज़ में अद्वितीय बाधा के लिए त्रुटि संदेशों से निपटने का सबसे आसान तरीका mongoose-beautiful-unique-validation जैसे प्लगइन का उपयोग करना है। यह त्रुटि संदेशों को सामान्य सत्यापन त्रुटि संदेशों की तरह दिखता है।

संबंधित मुद्दे