मैं नोड.जेएस (एक्सप्रेस के साथ) में वास्तव में मूल पंजीकरण फॉर्म पर काम कर रहा हूं, और मैं बुनियादी फॉर्म सत्यापन प्रदान करने का सबसे आसान तरीका ढूंढने की कोशिश कर रहा हूं। मैं "एक्सप्रेस-वैलिडेटर" के साथ गया हूं, जो एक अच्छा काम करता है। हालांकि, मेरा लक्ष्य केवल आवश्यक सत्यापन संदेशों को दिखाने के लिए है और उपयोगकर्ता द्वारा दर्ज किए गए मानों को छोड़ दें।नोड.जेएस (एक्सप्रेस) फॉर्म सबमिशन पर साफ़ करता है
ऐसा लगता है कि अनुरोध जानकारी इसे res.render में वापस नहीं ला रही है, जो मुझे लगता है। हालांकि, मैंने हर जगह देखा है जिसके बारे में मैं सोच सकता हूं और मुझे कोई संदर्भ नहीं मिल रहा है जो चर्चा करता है कि त्रुटि संदेश दिखाने के बाद फ़ॉर्म फ़ील्ड को कैसे बनाए रखा जाए।
post: function(req, res){
var userName = req.body.username;
var password = req.body.password;
//Validate input
req.assert("username", 'Invalid email address.').isEmail();
req.assert("password", 'Password cannot be empty.').notEmpty();
req.assert("passwordConfirm", 'Passwords entered do not match!').equals(password);
//Make sure we have no validation errors
var pageErrors = req.validationErrors();
if(!pageErrors)
{
userModel.CreateUser(userName, password, function(err){
if(err)
{
//there was a problem inserting new user... probably already exists
//will need to check the error to confirm
var dbErrorMessage = "Could not insert record into database!";
if(err.code === 11000)
{
//this is a duplicate entry
dbErrorMessage = "A user with that email address already exists!";
}
res.render('register.html', { pageErrors: [{msg: dbErrorMessage }]});
}
else
{
res.render('register.html', { successMessage: successMessage });
}
});
}
else
{
res.render('register.html', { pageErrors: pageErrors });
}
में किया जाना चाहिए जब लोग कहते हैं कि "वेब स्टेटलेस है"। प्रत्येक अनुरोध के बाद आपको अपने मूल्यों को मैन्युअल रूप से फिर से पॉप्युलेट करना होगा। –
हाँ, मुझे एहसास हुआ कि इसे मूल्यों को वापस करने के लिए सर्वर पक्ष से हस्तक्षेप की आवश्यकता होगी, लेकिन मुझे उम्मीद थी कि एक्सप्रेस में कुछ (या एक मिडलवेयर ऐड-ऑन) होगा जो हमारे लिए ऐसा कर सकता है। मैं सिर्फ AJAX फॉर्म सबमिशन मार्ग पर जाऊंगा। यह वैसे भी एक बेहतर उपयोगकर्ता अनुभव बना देगा। – creativename