Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未触发任何连接事件-Mongoose 4.7.1&;快车_Javascript_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 未触发任何连接事件-Mongoose 4.7.1&;快车

Javascript 未触发任何连接事件-Mongoose 4.7.1&;快车,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我无法通过Mongoose将我的express应用程序连接到MongoDB。没有复杂的设置,它相当基本: var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/homeApp'); var db = mongoose.connection; db.on("connecting", function(){ console.log("Connecting to DB..."); }); db

我无法通过Mongoose将我的express应用程序连接到MongoDB。没有复杂的设置,它相当基本:

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/homeApp');

var db = mongoose.connection;

db.on("connecting", function(){
    console.log("Connecting to DB...");
});

db.on('connected', function(){
    console.log('Connected to db');
});

db.on('error', function(error){
    console.log('Error');
});
很简单,对吧?但这些事件都没有被触发。Mongo运行正常,处于默认端口。我还尝试将
localhost
更改为
127.0.0.1
,并检查了
etc/hosts
文件的内容,似乎一切正常。如果我将URI字符串更改为以下内容:

'mongoldb://lclhost/homeApp'
我收到一个错误,说它无法连接,这是意料之中的,因此似乎正在建立/尝试连接,但什么也没有发生

我已将
db.db
的内容记录到控制台,并注意到
connected:false
,这表明它甚至没有尝试连接

有什么想法吗?这是在macOS Sierra 10.12.5上运行的Mongoose 4.7.1


提前谢谢

mongoose.connect方法接受回调,您可以使用回调检查连接:

mongoose.connect(uri, options, function(error) {
  // Check error in initial connection.
  if (error) {
    console.log(error);
  } else {
    console.log('connected ok');
  }
});

我认为您的连接正在创建中,但您的db.on事件没有被触发。

明白了!我尝试在没有mongoose的情况下使用mongodb客户机,一切正常,因此我知道连接正常,这就把责任推给了mongoose

事实证明,我并没有像我所想的那样使用4.7.1,只是运行
npm install mongoose--save
实际上安装了3.x版,根据mongoose文档,它与最新版本的MongoDB不兼容


将我的
package.json
文件中的版本号升级到4.7.1解决了这个问题

谢谢你的回复,仍然没有任何东西注销。有趣的是,我不小心将您的回复粘贴到了我现有的连接呼叫下面,它抱怨我试图打开和未关闭的连接,所以很明显发生了一些事情!