基于本论坛源码搭建了一个论坛,从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 求各位大神给予指导,谢谢!!
这个一般是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”
@Hokkaidosunny 正解!!