I have some trouble connecting to a remote mongoDB instance.
var http = require('http'),
express = require('express'),
path = require('path'),
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server,
CollectionDriver = require('./collectionDriver').CollectionDriver,
FileDriver = require('./fileDriver').FileDriver; //<---
var app = express();
app.set('port', process.env.PORT || 7777);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.bodyParser()); // <-- add
var mongoHost = 'mongodb://username:password@ds033170.mongolab.com';
var mongoPort = 33170;
var fileDriver; //<--
var collectionDriver;
var mongoClient = new MongoClient(new Server(mongoHost, mongoPort));
mongoClient.open(function(err, mongoClient) {
if (!mongoClient) {
console.error("Error! Exiting... Must start MongoDB first");
process.exit(1);
}
var db = mongoClient.db("myDatabaseName");
fileDriver = new FileDriver(db); //<--
collectionDriver = new CollectionDriver(db);
});
If I start node on my local machine and enter localhost:7777, I always get the following error from above in the console:
Error! Exiting... Must start MongoDB first
What might be the reason for that?
The docs on MongoClient
are confusing. It's typically best to use MongoClient.connect
instead of creating your own MongoClient
object and calling open
on it as you can include the database name into the connect
call's url
parameter.
So something like:
MongoClient.connect(
'mongodb://username:password@ds033170.mongolab.com:33170/myDatabaseName',
function(err, db) { ... });