Как остановить маршрутизацию к данному маршруту, если проверка не пройдена - PullRequest
0 голосов
/ 20 марта 2019

В моем файле signup.ejs я настроил форму с пост-запросом, и я написал / добро пожаловать маршрут в файле signup.js, я пытаюсь выяснить, как я могу остановить запрос поста на данный маршрут при проверке не удается или как я могу динамически назначить другой маршрут, например, маршрут с ошибкой (localhost:3000/signup/error вместо localhost:3000/signup/welcome, если проверка не пройдена), так как при каждой регистрации не удается, это маршрутизация на localhost:3000/signup/welcome, что неверно. Я попытался настроить переменные в файле signup.ejs, чтобы передать его в действие, однако он только перенаправляет на / welcome и не маршрутизирует на / error. По сути, я просто хочу увидеть конечную точку ошибки или просто остановить запрос POST, если проверка не удалась. Пожалуйста, предложите.

signup.ejs

<h2>Sign Up</h2>


<% var route = ''; %>
<% if (!messages.error) { %>
<% route = '/welcome' %>
<% }else{ %>
<% route = '/error' %>
<% } %>


<form action="signup<%- route %>" method="post" name="form1">

signup.js

router.post('/welcome', function(req, res, next) {

   req.checkBody('name', 'Name cannot be empty').notEmpty();
   req.checkBody('email', 'Please enter valid email').isEmail();
   req.checkBody('password', 'Password should be more than 5').isLength({ min: 5 });
   req.checkBody('password1', 'Password do not match').equals(req.body.password);

   var errors = req.validationErrors();

   if(!errors) {
       var user = {
         name: req.sanitize('name').escape().trim(),
         email: req.sanitize('email').escape().trim(),
         password: req.sanitize('password').escape().trim()
       }
       connection.query('Insert into customers set ?', user, function(err, result) {
        if(err) {
           req.flash('error', err);
           //render to signup
           res.redirect('/signup', {
               title: 'Add New User',
               name: user.name,
               email: user.email,
               password: user.password
           })

        }
            req.flash('success', 'Successfully signed up');
            res.render('welcome', {
                title: 'Signed In'
            });

    })
   }else {
    var error_msg = ''

    errors.forEach(function(error) {
        error_msg += error.msg + '<br>'
    })
    req.flash('error', error_msg);
    res.render('signup', {
        name: req.body.name,
        email: req.body.email,
        password: req.body.password
    })
}
});
...