只要我点击注册按钮,它就会显示" NOT FOUND"而不是重定向到同一页面。

时间:2016-09-09 15:29:15

标签: node.js express pug multer

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')

"寄存器"是我的register.jade文件,它显示了jade模板中的寄存器页面视图。 现在我添加了逻辑,这样如果任何文本框都是空的,那么它会将你重定向到注册页面,但这并没有发生。我应该纠正什么,以便404 Not Found消失?

1 个答案:

答案 0 :(得分:0)

更改

form(method='post', action='/user/register',enctype='multipart/form-data')

form(method='post', action='/register',enctype='multipart/form-data')

在jade模板中将其发布到正确的URL。