【问题标题】:Can not connect to mongoDB with MongoClient无法使用 MongoClient 连接到 mongoDB
【发布时间】:2014-08-30 12:43:06
【问题描述】:

我在连接远程 mongoDB 实例时遇到了一些问题。

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);
});

如果我在本地机器上启动节点并输入 localhost:7777,我总是在控制台中从上面收到以下错误:

错误!正在退出...必须先启动 MongoDB

这可能是什么原因?

【问题讨论】:

  • 不,它在端口 33170 的 mongoLab 服务器上运行;节点应用程序在我的本地机器上的端口 7777 上运行
  • 好的,我对“输入 localhost:7777”的意思感到困惑。 errmongoClient.open 回调中包含什么?
  • Error: failed to connect to [mongodb://username:password@ds033170.mongolab.com:33170] ...这是有道理的,因为我只能访问:mongodb://username:password @ds033170.mongolab.com:33170/myDatabaseName。但是我怎样才能确定呢?
  • MongoClient 上的文档令人困惑。使用MongoClient.connect

标签: node.js mongodb


【解决方案1】:

MongoClient 上的文档令人困惑。通常最好使用MongoClient.connect 而不是创建自己的MongoClient 对象并在其上调用open,因为您可以将数据库名称包含在connect 调用的url 参数中。

比如:

MongoClient.connect(
    'mongodb://username:password@ds033170.mongolab.com:33170/myDatabaseName',
    function(err, db) { ... });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-01
    • 2015-01-28
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2012-02-01
    相关资源
    最近更新 更多