Node.js 在集合上设置TTL索引时出错:套接字上的会话重新连接

Node.js 在集合上设置TTL索引时出错:套接字上的会话重新连接,node.js,mongodb,socket.io,mongoose,connect,Node.js,Mongodb,Socket.io,Mongoose,Connect,我有一个带有mongoose和socket.io的节点应用程序。应用程序工作正常,但若套接字断开连接,并在尝试重新连接时抛出以下错误。如果我永远运行这个,应用程序将重新启动,但一段时间后,它将抛出相同的错误,并将继续循环 node_modules\connect-mongo\lib\connect-mongo.js:161 throw new Error('Error setting TTL index on collection : ' + s ^

我有一个带有mongoose和socket.io的节点应用程序。应用程序工作正常,但若套接字断开连接,并在尝试重新连接时抛出以下错误。如果我永远运行这个,应用程序将重新启动,但一段时间后,它将抛出相同的错误,并将继续循环

node_modules\connect-mongo\lib\connect-mongo.js:161

throw new Error('Error setting TTL index on collection : ' + s
                      ^
Error: Error setting TTL index on collection : sessions
我尝试了其他的解决方案,但没有成功。以下是一些配置

package.json

"dependencies": {
        "express": "3.1.1",
        "passport": "0.1.16",
        "passport-local": "0.1.6",
        "mongoose": "latest",
        "connect-mongo": "latest",
        "async": "latest",
        "express-validator": "~0.3.2",
        "express-mailer": "~0.2.0",
        "bcrypt": "~0.7.5",
        "socket.io": "latest",
        "nodemailer": "latest",
        "underscore": "latest"
    }
app.js

app=express(),
  server = http.createServer(app),
  sessionStore= new mongoStore({
            url: config.db,
            secret: '12333434',
            maxAge: new Date(Date.now() + 3600000)});


mongoose.connect(config.db,{auto_reconnect:true});

// bootstrap passport config
require('./config/passport')(passport, config);

//var app = express()
// express settings
require('./config/express')(app, config, passport,sessionStore);
// Bootstrap routes
require('./config/routes')(app, passport);

// Start the app by listening on <port>
// Start Server w/ DB Connection
var port = process.env.PORT || config.port;
var host = ('localhost');
var db = mongoose.connection;
 db.on('connecting', function() {
    console.log('connecting to MongoDB...');
  });

  db.on('error', function(error) {
    console.error('Error in MongoDb connection: ' + error);
    mongoose.disconnect();
  });
  db.on('connected', function() {
    console.log('MongoDB connected!');
  });
  db.on('reconnected', function () {
    console.log('MongoDB reconnected!');
  });
  db.on('disconnected', function() {
    console.log('MongoDB disconnected!');
    mongoose.connect(config.db,{auto_reconnect:true});
  });
// db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback() {
  server.listen(app.get('port'), host, function() {
    console.log('Express server listening on port ' + app.get('port'));
  });

});
 production: {
        db: 'mongodb://fsdf@rer.mongohq.com:10093/erere',
        session: {
            secret: "324@234"
        },
        port: 3000,
        origin: 'http://www.123.com'
    }

我尝试过mongohq,但在为数据库添加用户和密码后,遇到了同样的问题!“在集合上设置TTL索引时出错”表示
connect mongo
无法访问您的集合以使用TTL(生存时间)创建索引您使用的是哪个版本的mongodb?@damphat它已经有用户名和密码db:'mongodb://fsdf:sdsd@rer.mongohq.com:10093/erere'@CBlanchard我在用mongohq,根据这个,我认为是2.4。3@sooraj.e您能从命令行连接到mongohq吗?您必须为数据库设置用户名/密码,并且不要与您的帐户密码混淆。