Error setting TTL index on collection : sessions 错误求解答
发布于 10 年前 作者 sinple 15686 次浏览 最后一次编辑是 8 年前

基于本论坛源码搭建了一个论坛,从version 0.3.2版本,升级到 version 0.4.0版本时,报如下错误: C:\dev\nodejs\dcweb2\node_modules\connect-mongo\node_modules\mongodb\lib\mongodb\connection\base.js:242 throw message; Error: Error setting TTL index on collection : sessions at C:\dev\nodejs\dcweb2\node_modules\connect-mongo\lib\connect-mongo.js:161:23 求各位大神给予指导,谢谢!!

7 回复

这个一般是connect-mongo没有初始化完毕httpServer就启动造成的,不是每次都发生,应该是个bug

connect-mongo的官方bug吧,修改下package.json,更新到最新的connct-mongo,可解决

我遇到同样问题,关键是代码次序:

app.use(session({
    secret: settings.cookieSecret,
    key: settings.db,//cookie name
    cookie: { maxAge: 1000 * 60 * 60 * 24 * 30 },//30 days
    store: new MongoStore({
        db: settings.db,
        host: settings.host,
        port: settings.port
    }),
    resave: true,
    saveUninitialized: true
}));

//
app.use(flash());

module.exports = app;

若将app.use(session(...))app.use(flash()); 放在app.js 前面,则报error setting TTL index ...

我重试我的代码,又出现Error setting TTL index on collection : sessions 问题,看来我之前的判断是错误,

可是根据stackoverflow, 更新 connect-mongo,从0.4.1 升级到0.8.0,又报新错误i: cannot read property length of undefined,

Why?

我把我mongodb里的存数据的文件里的内容删掉 就出现这个问题了 不知道为什么

将mongodb和connect-mongo都跟新到最新版本 在package.json修改 "mongodb":“2.0.42”, “connect-mongo”:“0.8.2”

回到顶部