Есть ли способ перенаправить на другой маршрут после res.json () в экспресс? - PullRequest
0 голосов
/ 27 января 2019

У меня есть форма, в которую я хочу вывести сообщение, когда пользователь успешно зарегистрирован, и после этого перенаправить его на другой маршрут.

Итак, у меня есть этот фрагмент кода в моем почтовом запросе на /register.

newUser.save()
  .then((user: any) => {
       res.json({ success })
       res.redirect('/')
   })
   .catch((error: string) => { throw error });

Это отправляет мне сообщение об успехе, которое я могу вывести в свой компонент React, но после этого перенаправление не срабатывает.

Есть ли способ достичь этого?Или в этой ситуации перенаправление должно быть в компоненте React, например?

1 Ответ

0 голосов
/ 27 января 2019

Это не может быть сделано.После того как ответ был отправлен, его нельзя изменить.

Более того, ответ, очевидно, обрабатывается как XMLHttpRequest на стороне клиента.Он не будет перенаправлять браузер, даже если ответ JSON не требуется.

Перенаправление на стороне клиента должно выполняться после получения ответа XHR с помощью window.location, или API истории, или маршрутизатора React, если он используется.

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