В моем файле 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
})
}
});