簡體   English   中英

Express.js - 同時 res.render 和重定向

[英]Express.js - res.render and redirect at the same time

我正在構建一個 web 應用程序,包括用於身份驗證的路由。

問題:注冊成功后,我想重定向/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"})
  } 
}

顯示的 url 是您在app.post("/someURL"中寫入的內容,而不是您重定向到的內容。

所以如果你想在注冊成功后重定向到登錄頁面,只需重定向到"/login" 它呈現"login.ejs"

關於您可能想要顯示注冊成功消息的部分,您可以使用'flash' package; 它可以幫助您將數據添加到 memory 並在客戶端獲取它並顯示成功消息。 我以這種方式使用 sweetalert2:

在后端代碼中:

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

在前端獲取這些信息:

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

我希望它對你有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM