Объединение jQuery и res.render в узле? - PullRequest
0 голосов
/ 03 ноября 2018

Я, вероятно, перепутал некоторые понятия здесь. Фрагмент для моего маршрута входа в систему. Чего я хочу добиться - это отправить объект 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'));
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...