无法让我的heroku应用程序的Mongo部分工作

时间:2013-09-13 02:22:00

标签: javascript mongodb heroku

我查看了几篇stackoverflow文章并尝试了不同的连接方式,但没有一种方法可行。到目前为止,我已经尝试过:

var mongodb = require('mongodb');
var uri = 'mongodb://Userxxx:Passxxx@ds0URI:PORT/heroku_appXXX';
mongodb.MongoClient.connect(uri, { server: { auto_reconnect: true } }, function (err, db) {
});

因以下错误而崩溃:

TypeError:无法调用undefined

的方法'connect'

然后我尝试了这个:

mongo = require('mongodb')
Server = mongo.Server
Db = mongo.Db
BSON = mongo.BSONPure;
con = null;

server = new Server('xxxxx.mongolab.com', 'PORT', {auto_reconnect: true});
DBCon = new Db('xxxxx', server, {safe: false});
DBCon.open(function(err, db) {
    if(!err) {
          db.authenticate('xxxxx', 'xxxxx', function(err){
                  if(!err) con = db; 
                 })  
            }   
      }); 

这给了我一个错误:/app/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:10 number')throw“必须指定主机和端口[”+ host +“:”+ port +“]”;必须指定主机和端口

有谁知道正确的方法吗?

1 个答案:

答案 0 :(得分:0)

我在Heroku中使用过MongoClient。代码看起来与您的代码不同:

var MongoClient = require("mongodb").MongoClient;
MongoClient.connect(databaseString, function (err, result){
     if (err) {
     }
}

由于您遇到的错误(MongoClient未定义),我想知道您的package.json文件是否正确。在我的测试中它看起来像这样:

{
    "name": "test",
    "version": "0.0.1",
    "dependencies": {
        "express": "2.5.x", "mongodb": "1.2.14", "node-static": "0.7.0"
    },
    "engines": {
        "node": "0.8.x",
        "npm": "1.1.x"
    }
}