【问题标题】:How to use mongo URI in mongoLab and Heroku server如何在 mongoLab 和 Heroku 服务器中使用 mongo URI
【发布时间】:2013-11-10 21:47:06
【问题描述】:

我正在使用 MongoDb 和 Nodejs。 Nodejs 托管在 Heroku 服务器上,而 Mongodb 通过 Heroku 插件在 MongoLab 中。

安装 MongoLab 插件后,我收到了这个 URI:

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

我不知道如何使用这个 URI,请帮忙? 放在哪里?什么是&lt;dbuser&gt;:&lt;dbpassword

这是我在 locallhost 中关注 mongoDB 的配置

server.js

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

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

express.js

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

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"
        }

    }
};

【问题讨论】:

    标签: node.js mongodb heroku uri mlab


    【解决方案1】:

    您可以使用以下方式连接到数据库:

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

    但在你的情况下,我会将mongodb://localhost/&lt;database name&gt; 替换为mongodb://&lt;dbuser&gt;:&lt;dbpassword&gt;@ds053148.mongolab.com:53148/&lt;database name&gt;

    【讨论】:

      【解决方案2】:
      mongoURI = 'mongodb://localhost/test';
      
      MONGOLAB_URI = "mongodb://<admin>:<admin>@ds3232.mlab.com:23213/abcd"
      
      mongoose.connect(MONGOLAB_URI || mongoURI)
      

      【讨论】:

      • 您能否解释一下您的解决方案在做什么,而不是仅仅粘贴一段代码。
      • 这实际上是 IMO 的最佳答案,通过阅读代码 @N 也很明显
      【解决方案3】:
      module.exports = {
      development: {
          db: 'mongodb://your_user_name:your_password@ds053148.mongolab.com: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:your_password@ds053148.mongolab.com: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:your_password@ds053148.mongolab.com: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"
          }
      
      }
      };
      

      将此粘贴​​到您的 config.js 文件中,并将 your_user_name 替换为您的用户名,并将 your_password 替换为您的密码以获取连接。

      【讨论】:

        猜你喜欢
        • 2012-11-02
        • 2013-01-03
        • 2017-12-13
        • 2014-01-18
        • 2015-05-07
        • 1970-01-01
        • 2012-02-10
        • 1970-01-01
        • 2018-04-11
        相关资源
        最近更新 更多