MongoDB: Error setting TTL index on collection : sessions

前端 未结 3 2122
执笔经年
执笔经年 2020-12-13 07:35

Initially this error message started appearing very infrequently, but started to appear more regularly and now appears 4/5 times I run my application.

I\'m handling

3条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-13 08:08

    As I said in your comment, essentially Express is receiving connections before the session store is fully connected. The solution is to wait for the connection to occur before allowing your application to start listening.

    You can avoid this problem by using a callback on MongoStore creation, or passing in an already active connection.

    Example using connect-mongo's Callback

    var sessionStore = new MongoStore({ url: 'someConnectionUrl', db: 'audio-drop' }, function(e) {
    
      var cookieParser = express.cookieParser('waytoblue');
      app.use(cookieParser);
    
      app.use(express.session({
        store: sessionStore
      }));
    
      app.listen();
    });
    

    Simple Mongoose Example

    var mongoose = require('mongoose');
    
    mongoose.connect('localhost', function(e) {
      // If error connecting
      if(e) throw e;
    
      var sessionStore = new MongoStore({ mongoose_connection: mongoose.connection }),
          cookieParser = express.cookieParser('waytoblue');
    
      app.use(cookieParser);
    
      app.use(express.session({
        store: sessionStore
      }));
    
      app.listen();
    });
    

提交回复
热议问题