नेवला सत्यापन मिडलवेयर है। आप व्यक्तिगत रूप से स्कीमा वस्तुओं के लिए सत्यापन कार्यों को परिभाषित कर सकते हैं। नेस्टेड आइटम भी मान्य किया जा सकता है। इसके अलावा आप एएसआईएन सत्यापन को परिभाषित कर सकते हैं। अधिक जानकारी के लिए mongoose page देखें।
var mongoose = require('mongoose'),
schema = mongoose.Schema,
accountSchema = new schema({
accountID: { type: Number, validate: [
function(v){
return (v !== null);
}, 'accountID must be entered!'
]}
}),
personSchema = new schema({
name: { type: String, validate: [
function(v){
return v.length < 20;
}, 'name must be max 20 characters!']
},
age: Number,
account: [accountSchema]
}),
connection = mongoose.createConnection('mongodb://127.0.0.1/test');
personModel = connection.model('person', personSchema),
accountModel = connection.model('account', accountSchema);
...
var person = new personModel({
name: req.body.person.name,
age: req.body.person.age,
account: new accountModel({ accountID: req.body.person.account })
});
person.save(function(err){
if(err) {
console.log(err);
req.flash('error', err);
res.render('view');
}
...
});
मैंने इसे नहीं देखा था, धन्यवाद। मुझे पसंद नहीं है कि सत्यापन/मार्ग नियंत्रक तर्क के लिए सत्यापन कितनी बारीकी से बंधे हैं। ऐसा लगता है कि आप खुद को एक अच्छा बिट दोहराएंगे। – Chance
आप कहां से संभाले गए सत्यापन को पसंद करेंगे? नियंत्रक/मार्ग सही जगह है, क्योंकि यह आपके सिस्टम में डेटा का "प्रवेश बिंदु" है। आप मॉडल को ऑफ़लोड कर सकते हैं, लेकिन मॉडल डेटा दृढ़ता/पुनर्प्राप्ति के बारे में चिंतित है। नियंत्रक/मार्ग सबसे अच्छी जगह है। – jcolebrand
अधिकांश डोमेन संचालित डिज़ाइन में, मॉडल व्यवसाय तर्क, डेटा अखंडता और नियम सत्यापन से संबंधित हैं जबकि अन्य खिलाड़ियों (और यहां तक कि स्वयं) डेटा दृढ़ता/पुनर्प्राप्ति से संबंधित हैं। मुझे एहसास है कि मॉडल डेटा हिस्से को संभालते हैं, लेकिन मेरा मानना है कि उन्हें सत्यापन भी संभालना चाहिए। मैं वास्तव में इसे "ऑफलोडिंग" पर विचार नहीं करता। – Chance