无法使用MongoClient连接到mongoDB

时间:2014-08-30 12:43:07

标签: node.js mongodb

我在连接到远程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

可能是什么原因?

1 个答案:

答案 0 :(得分:2)

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

类似于:

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