首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有connect-mongo和express的空存储对象

带有connect-mongo和express的空存储对象
EN

Stack Overflow用户
提问于 2013-04-25 00:13:31
回答 1查看 175关注 0票数 0

我使用Express和Connect-Mongo来管理我的Node.js/Socket.io应用程序的会话。

我查看了connect-mongo文档,并尝试初始化DB连接,但每当我尝试在其中存储任何内容时,store对象总是空的并崩溃。

下面是我使用的代码片段:

代码语言:javascript
复制
var mongoserver = new mongodb.Server('localhost', mongodb.Connection.DEFAULT_PORT, {safe:true}) ;
var store ;
app.use(express.session({
secret: 'secret', 
store: new MongoStore({ db: 'test'}, function(){
    db = new mongodb.Db('test', mongoserver, { w: 1 }) ;
    db.open(function(err, db){ 
        if(err){console.log('DB error', err) ;}

        db.collection('test', function(err, collection) {
          console.log('Collection...') ;
        });

        db.on("close", function(error){
            console.log("Connection to the database was closed!");
        });
    });
})
}));
io.sockets.on('connection', function (socket) {
store.set('test-sid', {foo:'bar'}, function(err, session) {}) ;
)};

所有其他变量(express,server等)都被正确初始化,应用程序出现,我在控制台中看到到mongo的连接被接受。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-25 00:40:01

您没有将存储存储在变量" store“中。它将被传递到会话配置中,并设置为快速应用程序设置。

要解决此问题,您可以创建存储并将其分配给变量,然后将其作为设置添加,然后将其传递到会话配置中:

代码语言:javascript
复制
// Create the store
var store = new MongoStore(...);

// Pass into session creation
app.set(expression.session({
    store: store
});

// You can now access the store from the variable as you expected
store.set('test-sid', {foo: 'bar'}, function(err, session) {});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16197057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档