首页 > 解决方案 > Mongoose 和 connect-mongo

问题描述

我正在使用 mongoose 来管理数据之间的关系,并且我正在尝试使用 connect-mongo 在数据库中存储特定的会话。

看起来我们需要两次连接到数据库,一次使用 mongoose,另一次使用 connect-mongo。

我正在使用以下代码来初始化猫鼬的连接

await mongoose.connect(this._connectionUrl, this._connectionOptions);

每次都初始化一个新商店(不确定我在代码初始化方面是否正确)。

app.use(session({
            // secret: config.sessionSecretKey,
            secret: "secretkey",
            resave: true,
            saveUninitialized: true,
            cookie: { maxAge: 19 * 60000 }, // store for 19 minutes
            store: MongoStore.create({
                mongoUrl: this._connectionUrl,
                mongoOptions: this._connectionOptions // See below for details
            })
        }))

有什么方法可以将连接从 mongoose 传递到 mongo-connect Store?

标签: node.jsmongodbsessionmongoosesession-cookies

解决方案


我也在寻找解决方案,只需在 connect-mongo 的“迁移指南”中阅读此内容

对于选项,您应该进行以下更改:

将 url 更改为 mongoUrl 将集合更改为 collectionName 如果您正在使用它 保留 clientPromise 如果您正在使用它 mongooseConnection 已被删除。请更新您的应用程序代码以使用 mongoUrl、client 或 clientPromise 要重用现有的 mongoose 连接,请使用 Connection.prototype.getClient() 从您的 mongoose 连接中检索 mongoDb 驱动程序,并将其传递给客户端选项中的存储。删除 fallbackMemory 选项,如果您正在使用它,

还有这个例子https://github.com/jdesboeufs/connect-mongo/blob/master/example/mongoose.js


推荐阅读