2013-10-31 10 views
5

Używam MongoDb i Nodejs. Nodejs jest hostowany na serwerze Heroku, a Mongodb jest w MongoLab poprzez dodatek Heroku.Jak używać URI Mongo w MongoLab i serwerze Heroku

Po zainstalowanego MongoLab dodatek dostałam tego URI:

mongodb://<dbuser>:<dbpassword>@ds053148.mongolab.com:53148/heroku_app18934798 

nie wiem, jak korzystać z tego URI, proszę o pomoc? Gdzie to umieścić? co jest <dbuser>:<dbpassword

To jest mój config, który jest problemem dla MongoDB w locallhost

W server.js

var env = process.env.NODE_ENV || 'development', 
    config = require('./config/config')[env], 
    mongoose = require('mongoose'); 

var db = mongoose.connect(config.db); 

W express.js

app.use(express.session({ 
      secret: 'thissecret', 
      key:'express.sid', 
      store: new mongoStore({ 
       url: config.db, 
       collection: 'sessions' 
      }) 
     })); 

W config.js

module.exports = { 
    development: { 
     db: 'mongodb://localhost/mean-dev', 
     root: rootPath, 
     app: { 
      name: 'MEAN - A Modern Stack - Development' 
     }, 
     facebook: { 
      clientID: "APP_ID", 
      clientSecret: "APP_SECRET", 
      callbackURL: "http://localhost:3000/auth/facebook/callback" 
     } 

    }, 
    test: { 
     db: 'mongodb://localhost/mean-test', 
     root: rootPath, 
     app: { 
      name: 'MEAN - A Modern Stack - Test' 
     }, 
     facebook: { 
      clientID: "APP_ID", 
      clientSecret: "APP_SECRET", 
      callbackURL: "http://localhost:3000/auth/facebook/callback" 
     } 

    }, 
    production: { 
     db: 'mongodb://localhost/mean', 
     root: rootPath, 
     app: { 
      name: 'MEAN - A Modern Stack - Production' 
     }, 
     facebook: { 
      clientID: "APP_ID", 
      clientSecret: "APP_SECRET", 
      callbackURL: "http://localhost:3000/auth/facebook/callback" 
     } 

    } 
}; 

Odpowiedz

3

można połączyć się z bazą danych przy użyciu następujących:

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://<dbuser>:<dbpassword>@ds053148.mongolab.com:53148/<database name>'); 

Ale w twoim przypadku chciałbym wymienić mongodb://localhost/<database name> z mongodb://<dbuser>:<dbpassword>@ds053148.mongolab.com:53148/<database name>

0
module.exports = { 
development: { 
    db: 'mongodb://your_user_name:[email protected]:53148/heroku_app18934798', 
    root: rootPath, 
    app: { 
     name: 'MEAN - A Modern Stack - Development' 
    }, 
    facebook: { 
     clientID: "APP_ID", 
     clientSecret: "APP_SECRET", 
     callbackURL: "http://localhost:3000/auth/facebook/callback" 
    } 

}, 
test: { 
    db: 'mongodb://your_user_name:[email protected]:53148/heroku_app18934798', 
    root: rootPath, 
    app: { 
     name: 'MEAN - A Modern Stack - Test' 
    }, 
    facebook: { 
     clientID: "APP_ID", 
     clientSecret: "APP_SECRET", 
     callbackURL: "http://localhost:3000/auth/facebook/callback" 
    } 

}, 
production: { 
    db: 'mongodb://your_user_name:[email protected]:53148/heroku_app18934798', 
    root: rootPath, 
    app: { 
     name: 'MEAN - A Modern Stack - Production' 
    }, 
    facebook: { 
     clientID: "APP_ID", 
     clientSecret: "APP_SECRET", 
     callbackURL: "http://localhost:3000/auth/facebook/callback" 
    } 

} 
}; 

Wklej w pliku config.js i zastąpić your_user_name przez swoją nazwę użytkownika i zastąpić your_password hasłem, aby uzyskać połączenie.

0
mongoURI = 'mongodb://localhost/test'; 

MONGOLAB_URI = "mongodb://<admin>:<admin>@ds3232.mlab.com:23213/abcd" 

mongoose.connect(MONGOLAB_URI || mongoURI) 
+0

Czy możesz wyjaśnić, co robi twoje rozwiązanie, zamiast wklejać fragment kodu. –