尝试将node.js连接到mongodb,获得成功响应但没有连接

时间:2019-03-26 13:27:23

标签: javascript node.js mongodb mongoose

我一直在按照在线说明在node.js上使用mongoose设置mongodb数据库。我设法使mongodb运行并在端口27017上侦听,但是当我在node.js中运行连接代码时,即使mongo.db没有运行,并且也没有看到任何更新,我仍获得了成功的响应。 mongo.db说它已经收到任何数据。

我从互联网上尝试了很多不同的示例,但是其中的任何一个都无法正常工作。

所以我有MongoDB这样的话:

2019-03-26T12:00:46.039+0000 I NETWORK  [initandlisten] waiting for connections on port 27017

这是我尝试使用的基本代码,因为我的原始API无法正常工作:

//sample.js

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/test', function(err){

  if(!err) console.log('Successfully Connected');

  console.log(mongoose.connection.host);

  console.log(mongoose.connection.port);
});

我在跑步时收到此响应

node sample.js

Successfully Connected

localhost

27017

但是即使我的mongo.db已关闭,我也收到此响应,所以我认为有一些错误,我不确定如何检查它们是否正确连接。

2 个答案:

答案 0 :(得分:2)

这对我有用。尝试进行一些调试以找出正在发生的情况。

mongoose.set('debug', true);

mongoose.connect("mongodb://localhost:27017/test", {useNewUrlParser: true})
    .then(() => {
        console.log('connected to the db');
     })
    .catch(err => {
        console.log('connection failed ' + err);
    }); 

答案 1 :(得分:1)

我认为您必须检查API才能连接。

https://mongoosejs.com/docs/connections.html

第二个参数是选项,第三个参数是回调-但您似乎已将回调作为第二个参数传递-另外,请检查您作为响应得到了什么

mongoose.connect(uri, options, function(error) {
  // Check error in initial connection. There is no 2nd param to the callback.
});

// Or using promises
mongoose.connect(uri, options).then(
  () => { /** ready to use. The `mongoose.connect()` promise resolves to undefined. */ },
  err => { /** handle initial connection error */ }
);