Ich habe seit einiger Zeit damit zu kämpfen, ich habe diese Nodejs Express App und mein Registrierungsformular gibt eine Reihe von Validierungsfehlern zurück, wenn die Formularfelder ungültig sind eine gute Sache, aber wenn das Formular ordnungsgemäß ausgefüllt ist, gibt es dennoch diese Fehler zurück und sendet keine Daten.Meine Express-Validierung gibt Fehler zurück, selbst wenn das Formular korrekt ausgefüllt wurde
Dies ist der Code route.post für Register
router.post('/register', function(req, res, next){
var name = req.body.name;
var email = req.body.email;
var username = req.body.username;
var password = req.body.password;
var password2 = req.body.password2;
// Check for image field
if(req.files && req.files.profileimage){
console.log('Uploading File...');
// File Info
var profileImageOriginalName = req.files.profileimage.originalname;
var profileImageName = req.files.profileimage.name;
var profileImageMime = req.files.profileimage.mimetype;
var profileImagePath = req.file.profileimage.path;
var profileImageExt = req.files.profileimage.extension;
var profileImageSize = req.files.profileimage.size;
}else {
// Set a Default Image
var profileImageName = 'noimage.png';
}
// Form validation
req.checkBody('name', 'Name is required').notEmpty();
req.checkBody('email', 'Email is required').notEmpty();
req.checkBody('email', 'Invalid Email ID').isEmail();
req.checkBody('username', 'Username is required').notEmpty();
req.checkBody('password', 'Password field is required').notEmpty();
req.checkBody('password2', 'Password do not match').equals(req.body.password);
// Check for Validation errors
var errors = req.validationErrors();
if(errors){
res.render('register', {
errors: errors,
name: name,
email: email,
username: username,
password: password,
password2: password2
});
}else {
var newUser = new User({
name: name,
email: email,
username: username,
password: password,
profileimage: profileImageName
});
// Create User
User.createUser(newUser, function(err, user){
if(err) throw err;
console.log(user);
});
// Success Message
req.flash('success', 'You are now registered and may log in');
res.location('/');
res.redirect('/');
}
});
Und hier mein register.jade Code ist
extends layout
block content
h1 Register
p Please register using the form below
ul.errors
if errors
each error, i in errors
li.alert.alert-danger #{error.msg}
form(method='post', action='/users/register', enctype='multipart/form-data')
.form-group
label Name
input.form-control(name='name', type='text', placeholder='Enter Name')
.form-group
label Email
input.form-control(name='email', type='text', placeholder='Enter Email')
.form-group
label Username
input.form-control(name='username', type='text', placeholder='Enter Username')
.form-group
label Password
input.form-control(name='password', type='password', placeholder='Enter Password')
.form-group
label Confirm Password
input.form-control(name='password2', type='password', placeholder='Confirm Password')
.form-group
label Profile Image
input.form-control(name='profileimage', type='file')
input.btn.btn-default(name='submit', type='submit', value='Register')
Bitte jede Hilfe so sehr geschätzt werden würde ... dank
Welche Fehler werden zurückgegeben? Welche Bibliothek verwenden Sie zur Validierung? –
Diese Fehler werden in Flash-Nachricht zurückgegeben und ich verwende Express-Validatoren req.checkBody ('name', 'Name ist erforderlich'). NotEmpty(); req.checkBody ('E-Mail', 'E-Mail ist erforderlich'). NotEmpty(); req.checkBody ('E-Mail', 'Ungültige E-Mail-ID'). IsEmail(); req.checkBody ('Benutzername', 'Benutzername ist erforderlich'). NotEmpty(); req.checkBody ('password', 'Passwort field is required'). NotEmpty(); req.checkBody ('password2', 'Passwort stimmen nicht überein'). Equals (req.body.password); –
Em, können Sie die Fehler protokollieren, um zu sehen, was falsch ist? –