Я, вероятно, перепутал некоторые понятия здесь. Фрагмент для моего маршрута входа в систему.
Чего я хочу добиться - это отправить объект JSON внешнему интерфейсу, сообщив, является ли пользователь администратором или нет (и добавить ссылку на страницу администратора). res.render('../views/pages/map', {message:'admin'});
Но так как я использую jquery, html возвращается после того, как пользователь вошел в систему, а не отображается как html-страница.
Могу ли я по-прежнему использовать jQuery или мне нужно использовать обычный почтовый запрос?
$(() => {
$('form').submit((event) => {
event.preventDefault();
const user = getUserFromForm();
login(user)
.then(result => {
//console.log(result);
//window.location = '/map';
}).catch(error => {
showErrorMessage(error.responseJSON.message);
})
});
});
function login(user) {
return $.post(`http://localhost:4321/auth/login`, user)
}
router.post('/login', (req, res, next) => {
if(validUser(req.body)) {
// check to see if in db
queries.getOneByEmail(req.body.email)
.then(user => {
console.log('user', user)
if(user) {
// compare password with hash password
bcrypt.compare(req.body.password, user.password)
.then((result) => {
// if the password match
if(result) {
// setting the 'set cookie' header
setUserIdCookie(req, res, user.id);
// res.json({
// message: 'Logged in!'
// });
res.render('../views/pages/map', {message:'admin'});
} else {
next(new Error('Invalid Login1'));
}
});
} else {
next(new Error('Invalid Login2'));
}
});
} else {
next(new Error('Invalid Login3'));
}
});