【发布时间】: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”的意思感到困惑。
err在mongoClient.open回调中包含什么? -
Error: failed to connect to [mongodb://username:password@ds033170.mongolab.com:33170] ...这是有道理的,因为我只能访问:mongodb://username:password @ds033170.mongolab.com:33170/myDatabaseName。但是我怎样才能确定呢?
-
MongoClient上的文档令人困惑。使用MongoClient.connect。