[英]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.