如何在 connect-mongo 中使用会话?

Posted

技术标签:

【中文标题】如何在 connect-mongo 中使用会话?【英文标题】:How to use sessions with connect-mongo? 【发布时间】:2017-10-11 07:20:44 【问题描述】:

connect-mongo 的文档中,我只阅读了关于它的设置,仅此而已。如何定义会话?怎么读?

const mongoose = require("mongoose");
mongoose.Promise = Promise;
const session = require('express-session');
const MongoStore = require('connect-mongo')(session);

mongoose.connect('mongodb://localhost/MYDATABASE');

app.use(session(
    secret: "SOME_SECRET_KEY",
    store: new MongoStore( mongooseConnection: mongoose.connection )
));

好的,我设置好了。如果我有

app.get("/login", function(req, res)
// If user authorized
// I want to define a session.user = req.body.user 
// And then I want to read this value in other my site pages
);

我如何定义用户登录和其他一些会话数据?

如何读取这些值?

此会话将存储在 MongoDB 中的什么位置?或者我不仅需要定义 MYDATABASEMYDATABASE/sessionstore 的方法吗?

我必须生成秘密还是必须是一个定义的字符串?

【问题讨论】:

【参考方案1】:

    会话的读取和写入是通过req.session 对象完成的:req.session.userId = req.body.userId

    会话数据将存储在一个名为 sessions 的集合中,由 默认。

    About the session secret

【讨论】:

我想我们想知道如何访问那些数据库存储的会话

以上是关于如何在 connect-mongo 中使用会话?的主要内容,如果未能解决你的问题,请参考以下文章

connect-mongo 创建的条目未过期

connect-mongo模块

如何在生产中设置快速会话。快速会话在 https 中不起作用

使用 connect-mongo 时处理数据库错误

使用 connect-mongo 时处理数据库错误

获取错误语法错误:意外令牌 > 使用 connect-mongo 模块