user.js
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
router.get('/register', function(req, res, next) {
res.render('register', {
'title':'Register'
});
});
router.get('/login', function(req, res, next) {
res.render('login', {
'title':'Login'
});
});
router.post('/register',function(req, res, next){
//get the form values
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.profileimage){
console.log('Uploading File...');
var profileImageOriginalName = req.files.profileimage.originalname;
var profileImageName = req.files.profileimage.name;
var profileImageMine = req.files.profileimage.mimetype;
var profileImagePath = req.files.profileimage.path;
var profileImageExt = req.files.profileimage.extension;
var profileImageSize = req.files.profileimage.size;
}else{
//set default image
var profileImageName = 'noimage.png';
}
//form validation
req.checkBody('name','Name field is required').notEmpty();
req.checkBody('email','Email field is required').notEmpty();
req.checkBody('email','Email field is required').isEmail();
req.checkBody('username','Username field is required').notEmpty();
req.checkBody('password','Password field is required').notEmpty();
req.checkBody('password2','Passwords dont match').equals(req.body.password);
//check for 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
});
/* User.createUser(newUser,function(err, user){
if(error) throw err;
console.log(user);
});*/
//success message
req.flash('success','You are now registered and may login');
res.location('/');
res.redirect('/');
}
});
module.exports = router;
register.jade
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='/user/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-success(type='submit', name='submit', value='Register')
"registre" est mon fichier register.jade qui montre la vue de page de registre dans le modèle de jade. Maintenant, j'ai ajouté la logique de sorte que si des zones de texte sont vides, il vous redirigera pour réenregistrer la page, mais cela ne se produit pas. Que dois-je rectifier pour que la 404 Not Found disparaisse?Dès que je clique sur le bouton d'enregistrement, au lieu de rediriger vers la même page, il montre "INTROUVABLE"
Votre action de formulaire ne semble pas correspondre à votre itinéraire. – CBroe