我在server.js文件中有这个代码。 我想连接到这个mongoDB数据库,然后获得一个控制台日志指示。
但是,数据库连接没有控制台日志消息(对于服务器我收到日志消息)。我甚至没有收到错误消息,只是一条消息到控制台日志,http已连接(数据库中没有任何内容)。
为什么呢? 我的代码如下 感谢
server.js
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var path = require('path');
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
//more code that is not relevant
var url = 'mongodb://1.0.0.127:4444/small-talkz';
MongoClient.connect(url, function(err, db) {
console.log("Connected correctly to DB.");
db.close();
});
http.listen((process.env.PORT || 3000), function(){
console.log('listening on *:3000 '+ __dirname);
});
答案 0 :(得分:2)
如Node.js驱动程序的docs中所述,每次重试之间的默认重试次数为5和5000 ms。因此,在回调中实际出现错误之前,您必须等待一段时间。由于您目前没有将错误写入console
,因此您不会看到错误,但会因访问db
null
而导致错误。
将其更改为
MongoClient.connect(url, function(err, db) {
if (err) {
console.log(err);
}
else {
console.log("Connected correctly to DB.");
db.close();
}
});
等一下,你会看到错误。或者,减少重试次数或每次重试之间的延迟,以便更快地看到它失败:)
在您看到错误后,您将能够查看原因并进行修复(可能是您的URI错误),或者至少您可以向我们提供更多信息。
答案 1 :(得分:1)
尝试使用此连接。使用默认端口27017&运行mongod。本地主机。
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:27017/table_name", function(err, db) {
if(err)
{
console.log(err);
}
else{
console.log("Connected correctly to DB.");
db.close();
}
});
});
如果它正在使用它,那么请确保在特定的ip 1.0.0.127(奇怪的IP)和4444端口上运行mongo服务器。