在集合中设置TTL索引时出错:Session

我知道这个问题有很多话题,但是其中的任何一个解决了我的问题。 我实际上是试图在Heroku上部署我的项目,这对我来说是个新东西。

我的项目是基于连接到MongoDB数据库的Express API的node.js。 当我用我的数据库在本地启动它(没有login名/密码),我没有这个错误,但是当我连接到heroku数据库时,我得到一个:

Error: Error setting TTL index on collection : Session <MongoError: not authorized for query on app17713548.system.indexes> 

我的package.json

 "dependencies": { "express": "3.0.6", "mongodb": "1.3.19", "mongoskin": "0.5.0", "MD5": "1.0.3", "connect-session": "*", "connect-mongo": "0.3.3", "geoip-lite": "1.0.10" }, "engines": { "node": "0.8.19", "npm": "1.1.65" } 

而为了连接到我的数据库我使用MongoSkin和行是:

 mongo.db(conf.dbLogin+':'+conf.dbPassword+'@'+conf.dbAddr+':'+conf.dbPort+'/'+conf.dbName+'?auto_reconnect=true', {w: 1}); 

任何帮助将非常感激!

事实certificate,我没有configuration同样在mongodb下的会话存储。

也许你的连接string不正确。 试试这个:

 var mongodb = require("mongodb"); var db = new mongodb.Db(conf.dbName, new mongodb.Server(conf.dbAddr, conf.dbPort, {auto_reconnect:true}), {w:1}); db.open(function(error){ if (error){ //handle return; } db.authenticate(conf.dbLogin, conf.dbPassword, function(error){ if (error){ //handle return; } //you are now connected! }); });