如何从NodeJS在MongoDB中存储会话? [英] How to store sessions in MongoDB from NodeJS?

查看:41
本文介绍了如何从NodeJS在MongoDB中存储会话?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 connect-mongo 模块将 express 中的会话存储在 mongodb 中.像这样使用它:

I use connect-mongo module to store sessions from express in mongodb. Use it like this:

app.use(express.session({
    'secret': config.APP_SECRET,
    'store': new MongoStore({
        'db': db
    })
}));

位置:

var MongoStore = require(config.MODULES_DIR + 'connect-mongo')(express);
var db = mongoose.connection; // already connected as i use in in callback

但是当使用会话时,我会收到此错误:

But when session is used i get this error:

TypeError: Object #<Object> has no method 'open'
    at MongoStore._open_database (/node_modules/connect-mongo/lib/connect-mongo.js:174:15)
    at MongoStore._get_collection (/node_modules/connect-mongo/lib/connect-mongo.js:169:14)
    at MongoStore.get (/node_modules/connect-mongo/lib/connect-mongo.js:211:10)
    at Object.session [as handle] (/node_modules/express/node_modules/connect/lib/middleware/session.js:314:11)
    at next (/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.cookieParser [as handle] (/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5)
    at next (/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.urlencoded [as handle] (/node_modules/express/node_modules/connect/lib/middleware/urlencoded.js:49:37)
    at next (/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.json [as handle] (/node_modules/express/node_modules/connect/lib/middleware/json.js:51:37)

推荐答案

如果要使用Mongoose连接,则需要适当命名的

If you want to use a Mongoose connection, you need the aptly named mongoose_connection option:

new MongoStore({
  mongoose_connection : db 
})

这篇关于如何从NodeJS在MongoDB中存储会话?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆