2011-04-05 20 views
21

में किसी फ़ॉर्म को सत्यापित और संभाल कैसे करें एक्सप्रेस के लिए कोई पसंदीदा फ़ॉर्म हैंडलिंग और सत्यापन लाइब्रेरी है?एक्सप्रेस (NodeJS)

मैं वास्तव में एक समान स्तर की अमूर्तता की तलाश में हूं जैसा कि Django रूपों में पाया जाता है - यानी टेम्पलेट में सत्यापन और त्रुटि रिपोर्टिंग।

यदि ग्राहक की तरफ समान सत्यापन का उपयोग किया जा सकता है, तो यह बहुत अच्छा होगा।

क्या किसी ने भी अच्छा इस्तेमाल किया है, या लिखा है, कुछ भी अच्छा है?

उत्तर

18

ऐसा लगता है कि https://github.com/caolan/forms पर स्थित इस के लिए एक मॉड्यूल है। मैंने कभी इसका इस्तेमाल नहीं किया है, लेकिन यह काफी पूर्ण रूप से प्रदर्शित लगता है।

+7

मैं किसी और को नियंत्रित किसी का विचार पसंद नहीं है मेरा फॉर्म मार्कअप – chovy

+8

@chovy: आपको गलत दिशा में सभी को आगे बढ़ाने की बजाय दस्तावेज़ को अधिक ध्यान से पढ़ना चाहिए। जब आप फ़ील्ड.toHTML() के form.toHTML() के साथ अपना फॉर्म प्रस्तुत करते हैं, तो आप पैरामीटर में एक कस्टम इटरेटर पास कर सकते हैं। इटेटरेटर वह फ़ंक्शन है जो HTML/फ़ॉर्म को प्रस्तुत करने के लिए उपयोग करेगा। आप कस्टम विजेट, सत्यापनकर्ता, इटरेटर और अधिक बना सकते हैं ... –

+1

आप दोनों के पास एक बिंदु है। @chovy ने जो कहा, उस पर विस्तार करते हुए, भले ही आप एक इटेटरेटर पास करते हैं, आप यह इंगित कर रहे हैं कि फ़ॉर्म '.toHTML()' का उपयोग करके प्रस्तुत किया जाना चाहिए। इसके विपरीत और @ जीन-फिलिप ने जो कहा, उस पर विस्तार करने के लिए, आपको वास्तव में अपने फॉर्मों से निपटने के लिए लगभग हर चीज प्राप्त करने के लिए '.toHTML()' का उपयोग करने की भी आवश्यकता नहीं है (हालांकि यह दस्तावेज़ों का बहुत सावधानीपूर्वक पढ़ना पड़ा इसे समझने के लिए)। –

7

यह भी व्यवहार्य लग रहा है और अभी भी विकसित किया जा रहा है: https://github.com/ctavan/express-validator

यहाँ एक फ़ॉर्म प्रविष्टि (लॉगिन पोस्ट अनुरोध) मान्य का एक उदाहरण है:

exports.login.post = function(req, res){ 
    req.assert('username', 'Enter username').notEmpty(); 
    req.assert('password', 'Enter password').notEmpty(); 
    res.locals.err = req.validationErrors(true); 

    if (res.locals.err) { 
    if (req.xhr) { 
     res.send(401, { err: res.locals.err }); 
    } else { 
     res.render('login', { err: res.locals.err }); 
    } 

    return; 
    } 

//authenticate user, data is valid 
}; 
संबंधित मुद्दे