0

How can I connect without to a distant database (MONGOHQ) without using MongoClient.connect() ?

var db, mongo, server;

mongo = require("mongodb");

server = new mongo.Server("mongodb://login:password@paulo.mongohq.com:10057//appname", 10057, {
 auto_reconnect: true
});

db = new mongo.Db("confirmed", server, { safe: true });

the message I get from my server is

[Error: failed to connect to [mongodb://login:password@paulo.mongohq.com:10057//appname:10057]]

Any ideas ?

maximegir
  • 63
  • 7
  • Are you able to connect from the command line [`mongo` shell](http://docs.mongodb.org/manual/reference/mongo-shell/) using the same credentials? Sample command line: `mongo -u login -p password paulo.mongohq.com:10057/appname`. It looks like you have an extra "/" before appname, and you have also duplicated the port number (10057). I suspect your Node.js connection string should be `server = new mongo.Server("mongodb://login:password@paulo.mongohq.com:10057/appname");`. – Stennie Jan 10 '14 at 02:06

1 Answers1

1

You want something more like this, where you define the server as a DNS name (no protocol, port, auth or path):

server = new mongo.Server("paulo.mongohq.com", 10057, {
    auto_reconnect: true
});

db = new mongo.Db("confirmed", server, { safe: true });

and then once db is defined:

db.open(function(erreur, db) {
    db.authenticate('user', 'name', function(err, result) {
        //
    });
brandonscript
  • 68,675
  • 32
  • 163
  • 220
  • The url to use would be paulo.mongohq.com/appname ? – maximegir Jan 07 '14 at 21:01
  • @maximegir no, you'll need to specify the app name elsewhere; not too familiar with mongo, but if you look up the info in the docs (or even elsewhere on SO) you'll see that it connects to an IP address or DNS name, not a URL. – brandonscript Jan 07 '14 at 21:03