`
//logout
router.get("/logout", (req, res) => {
res.render("logout")
req.session.username = undefined
req.session.loggedIn = false
})
//login
router.get("/login", (req, res) => {
res.render("login")
})
router.post("/login", (req, res) => {
let data = JSON.parse(fs.readFileSync("./data.json"))
let exists = false
data.users.forEach(user => {
if(user.name === req.body.username){
exists = true
if(user.password === req.body.password){
req.session.loggedIn = true
req.session.username = user.name
res.redirect("/")
}else res.send("Incorrect password!")
}
})
if(exists === false){
res.send("There is no account with that username.")
}
})
//register
router.get("/register", (req, res) => {
res.render("register")
})
router.post("/register", (req, res) => {
let data = JSON.parse(fs.readFileSync("./data.json"))
let exists = false
data.users.forEach(user => {
if(user.name === req.body.username){
res.send("Please choose a different username!")
exists = true
}
})
if(exists === false){
let template = {
name: req.body.username,
password: req.body.password
}
data.users.push(template)
fs.writeFileSync("./data.json", JSON.stringify(data, null, 2))
res.send("Registered successfully!")
}
})
//home
router.get("/", (req, res) => {
console.log(req.session.loggedIn)
if(req.session.loggedIn === true){
res.render("index", {name: req.session.username})
}else res.render("index", {name: "Guest"})
})
` 所以,這是我的代碼。我想撰寫一個登錄/注冊/主頁/注銷系統的代碼,但我在這里遇到了一個小問題。當我第一次加載主頁時,它說我以訪客身份登錄(這是應該的)。登錄后,它會顯示我的用戶名(也應該如此)。但是,當我注銷并 console.log loggedIn 變數時,它顯示 false 并且在主頁上再次顯示 true 。它仍然顯示我的用戶名。主頁上的 loggedIn 變數應該為 false。誰能幫我?
當我注銷時,我希望主頁上的變數為 false。我試圖改變函式的順序但沒有任何幫助。
uj5u.com熱心網友回復:
您需要銷毀會話
req.session.destroy();
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/536441.html
標籤:节点.js表示快速会话
下一篇:發布請求未收到正文
