Перенаправление не работает после регистрации нового пользователя в БД (экспресс, мангуста, реакция) - PullRequest
0 голосов
/ 07 декабря 2018

У меня проблемы с этим кодом, новый пользователь просто отлично регистрируется в БД, но просто зависает после нажатия кнопки отправки.Хотел бы перенаправить на страницу входа.Чего мне не хватает?

app.post('/register', function(req, res) {
  var body = req.body,
             username = body.username,
             password = body.password;
  User.findOne({ username: username }, function(err, document) {
    if (err) { res.status(500).send('Error ocurred') }
    else {
      if (document) {
        { res.status(500).send('Username already exists.') }
      } else {
        User.register(new User({ username: req.body.username }), req.body.password, function(err, user) {
          if(err) {
            console.log(err);
          }
          return res.render('/login');
        })
      }
    }
  })
})

1 Ответ

0 голосов
/ 07 декабря 2018

Из ваших комментариев я делаю вывод, что это должна быть запись в форме, которая создает этот запрос.Если это так, то вы можете использовать

res.redirect('/login')

, чтобы сообщить браузеру о загрузке URL / login после завершения процедуры POST.Затем браузер запросит URL-адрес /login, и ваш сервер Express затем отправит эту страницу обратно в браузер, а на строке URL-адреса в браузере отобразится перенаправленный URL-адрес http://somedomain.com/login, который, вероятно, вам нужен.

Что касается res.render(), он ожидает имя файла в вашей локальной файловой системе, а не URL, поэтому я предполагаю, что /login не является допустимым именем файла, которое указывает на шаблон HTML для его рендеринга, поэтому оно не 'т работа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...