Express. js - res.render и redirect одновременно - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю веб-приложение, включая маршруты для аутентификации.

Проблема: При успешной регистрации я хочу перенаправить на /login, но также включить параметры рендеринга. Но когда я рендер login.ejs, URL остается /register.

Опции: Мне либо нужно найти способ использовать res.render и изменить URL ИЛИ использует res.redirect, а также передает переменные рендеринга.

Это минимальный код, чтобы показать мою проблему:

app.get("/login", (res, req) => {
 res.render("login.ejs", {flag: ""})
}

app.post("/register", (res, req) => {
  // registration logic
  if(success) {
    res.render("login.ejs", {flag: "registration_success"})
  } 
}

1 Ответ

0 голосов
/ 10 апреля 2020

Показанный URL-адрес - это то, что вы пишете в app.post("/someURL", а не то, на что вы перенаправляете.

, поэтому, если вы хотите перенаправить на страницу входа после успешной регистрации, просто перенаправьте на "/login". "login.ejs"

отображает ту часть, которую вы, вероятно, хотите показать в сообщении об успешной регистрации, вы можете использовать пакет 'flash'; это поможет вам добавить данные в память и получить их на стороне клиента и показать сообщение об успехе. Я использую sweetalert2 таким образом:

в фоновом коде:

req.flash('a-name-you-want', { flags, you, want });

, чтобы получить эту информацию в front-end:

<% let yourData = req.flash('the-name')
if(yourData.length) {
  // do sth to the data
}%>

Я надеюсь, что это помог тебе!

...