使用req.session.xxx時出現 Cannot set property ‘xxxx‘ of undefined

不禿頭的小李同學發表於2020-12-14

問題如下

在這裡插入圖片描述

檢視app.js 程式碼發現引入的session模組 為灰色沒有使用

在這裡插入圖片描述

檢視express-session中的官方文件其中req.session使用案例為:

// Use the session middleware
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))

// Access the session as req.session
app.get('/', function(req, res, next) {
  if (req.session.views) {
    req.session.views++
    res.setHeader('Content-Type', 'text/html')
    res.write('<p>views: ' + req.session.views + '</p>')
    res.write('<p>expires in: ' + (req.session.cookie.maxAge / 1000) + 's</p>')
    res.end()
  } else {
    req.session.views = 1
    res.end('welcome to the session demo. refresh!')
  }
})

發現沒有配置session的中介軟體

app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
固配置中介軟體
// 配置session的中介軟體
app.use(session({ secret: 'secret key' }));
執行結果顯示正常:

在這裡插入圖片描述

相關文章