title: Going from mongodb to MongoLab using Node.JS
body: <p>I'm trying to do the same thing this guy's doing here <a href="https://stackoverflow.com/questions/16660519/how-do-i-setup-mongodb-database-on-heroku-with-mongolab">How do I setup MongoDB database on Heroku with MongoLab?</a></p>
  
  <p>The app works on Amazon EC2 and I'm deploying to Heroku with the MongoLabs add-on.</p>
  
  <p>What exactly should I type to change the mongo connection to the Mongo URI?</p>
  
  <h1>Heroku Documentation</h1>
  
  <pre><code>/** https://devcenter.heroku.com/articles/getting-started-with-nodejs#write-your-app */
  
  var mongo = require('mongodb');
  
  var mongoUri = process.env.MONGOLAB_URI ||
    process.env.MONGOHQ_URL ||
    'mongodb://localhost/mydb';
  
  mongo.Db.connect(mongoUri, function (err, db) {
    db.collection('mydocs', function(er, collection) {
      collection.insert({'mykey': 'myvalue'}, {safe: true}, function(er,rs) {
      });
    });
  });
  </code></pre>
  
  <hr>
  
  <h1>app.js</h1>
  
  <pre><code>/** app.js */
  
  var express = require('express')
    , routes = require('./routes')
    , user = require('./routes/user')
    , http = require('http')
    , path = require('path')
    , EmployeeProvider = require('./employeeprovider').EmployeeProvider;
  
  var app = express();
  
  app.configure(function(){
    app.set('port', process.env.PORT || 8080);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.set('view options', {layout: false});
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(require('stylus').middleware(__dirname + '/public'));
    app.use(express.static(path.join(__dirname, 'public')));
  });
  
  app.configure('development', function(){
    app.use(express.errorHandler());
  });
  
  var employeeProvider= new EmployeeProvider('localhost', 27017);
  
  //Routes
  
  app.get('/', function(req, res){
    employeeProvider.findAll(function(error, emps){
         res.render('index', {
              title: 'Employees',
              employees:emps
          });
     });
  });
  
  app.get('/employee/new', function(req, res) {
      res.render('employee_new', {
          title: 'New Employee'
      });
  });
  
  //save new employee
  app.post('/employee/new', function(req, res){
      employeeProvider.save({
      title: req.param('title'),
          name: req.param('name')
      }, function( error, docs) {
          res.redirect('/')
      });
  });
  
  app.listen(8080);
  </code></pre>
  
  <h1>employeeprovider.js</h1>
  
  <pre><code>var Db = require('mongodb').Db;
  var Connection = require('mongodb').Connection;
  var Server = require('mongodb').Server;
  var BSON = require('mongodb').BSON;
  var ObjectID = require('mongodb').ObjectID;
  
  EmployeeProvider = function(host, port) {
    this.db= new Db('node-mongo-employee', new Server(host, port, {safe: true},          {auto_reconnect: true}, {}));
    this.db.open(function(){});
  };
  
  
  EmployeeProvider.prototype.getCollection= function(callback) {
    this.db.collection('employees', function(error, employee_collection) {
      if( error ) callback(error);
      else callback(null, employee_collection);
    });
  };
  
  //find all employees
  EmployeeProvider.prototype.findAll = function(callback) {
      this.getCollection(function(error, employee_collection) {
        if( error ) callback(error)
        else {
          employee_collection.find().toArray(function(error, results) {
            if( error ) callback(error)
            else callback(null, results)
          });
         }
      });
  };
  
  //save new employee
  EmployeeProvider.prototype.save = function(employees, callback) {
      this.getCollection(function(error, employee_collection) {
        if( error ) callback(error)
        else {
          if( typeof(employees.length)=="undefined")
            employees = [employees];
  
          for( var i =0;i&lt; employees.length;i++ ) {
            employee = employees[i];
            employee.created_at = new Date();
          }
  
          employee_collection.insert(employees, function() {
            callback(null, employees);
          });
        }
      });
  };
  
  exports.EmployeeProvider = EmployeeProvider;
  </code></pre>
  
  <p>How would I change the employeeProvider to use the URI instead of the localhost?</p>