我在连接到远程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
可能是什么原因?
答案 0 :(得分:2)
MongoClient
上的文档令人困惑。通常最好使用MongoClient.connect
而不是创建自己的MongoClient
对象并在其上调用open
,因为您可以将数据库名称包含在connect
调用中# 39; s url
参数。
类似于:
MongoClient.connect(
'mongodb://username:password@ds033170.mongolab.com:33170/myDatabaseName',
function(err, db) { ... });