我正在嘗試製作一個簡單的登入表單,讓使用者登入網站,然後將他們的會話資料儲存到會話 cookie 中。我正在使用express-session,在他們的文檔中它給出了這個作為設定的範例:
app.post('/login', express.urlencoded({ extended: false }), function (req, res) { // login logic to validate req.body.user and req.body.pass // would be implemented here. for this example any combo works // store user information in session, typically a user id req.session.user = req.body.user // save the session before redirection to ensure page // load does not happen before session is saved req.session.save(function (err) { if (err) return next(err) res.redirect('/') }) }) })
但在我的程式碼中,我不斷在「req.session.user」部分收到錯誤,其中顯示:「屬性「使用者」在「會話和部分」類型上不存在」 ,即使我使用的是Express-Session 文檔中完全相同的程式碼。
我遵循文件中的所有說明,並將其放在程式頂部:
import session from 'express-session'; app.set('trust proxy', 1); app.use(session({ name: `First_test`, secret: 'secret_text', saveUninitialized: true, resave: true, cookie: { secure: false, maxAge: 960000 } }));
調試時我可以看到 req.session 內部確實沒有「user」屬性。
我已經搜尋了 google 和 stackoverflow 但沒有找到解決方案。我很可能錯過了一些小步驟,我希望這裡有人可以幫助教育我。
感謝您事先提供的協助。
從
@types/express-session
套件中我們可以看到因此,您應該在會話物件上宣告
user
屬性,如下所示:軟體套件版本:
#"express-session": "^1.17.1"