我知道有很多关于这个问题的话题,但其中任何一个都解决了我的问题。 我实际上是想在Heroku上部署我的项目,这对我来说是新的。
我的项目是一个基于连接到MongoDB数据库的Express API的node.js。 当我在我的数据库本地启动时(没有登录/密码)我没有这个错误,但是当我将它连接到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});
非常感谢任何帮助!
答案 0 :(得分:1)
事实证明我没有使用相同的参数配置mongodb下的会话存储。
答案 1 :(得分:0)
也许您的连接字符串不正确。试试这个:
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!
});
});