我正在尝试制作一个简单的登录表单,供用户登录网站,然后将他们的会话数据保存到会话 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"