mongoDB connect(通过Node.js驱动程序)不会给我控制台日志msg

时间:2016-07-21 08:59:13

标签: javascript node.js mongodb

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

2 个答案:

答案 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服务器。