4

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

我的项目是基于 Express API 连接到 MongoDB 数据库的 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});

任何帮助将不胜感激!

4

2 回答 2

1

原来我没有使用相同的参数配置也在 mongodb 下的会话存储。

于 2013-09-05T22:04:36.233 回答
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!
  });
});
于 2013-09-01T17:15:35.147 回答