Node.js 为什么从MongoDB读取所有数据时都不会调用回调?

Node.js 为什么从MongoDB读取所有数据时都不会调用回调?,node.js,mongodb,mongojs,Node.js,Mongodb,Mongojs,我最近将我的机器更新为Node.js版本7.5.0(如果我记得清楚的话,我以前使用的是版本4) 以前工作过的应用程序之一不再工作。这个问题可以这样重现: var connectionString = 'mongodb://127.0.0.1:27017/blog', mongojs = require('mongojs'), db = mongojs(connectionString, ['articles']), dataArticles = db.collection

我最近将我的机器更新为Node.js版本7.5.0(如果我记得清楚的话,我以前使用的是版本4)

以前工作过的应用程序之一不再工作。这个问题可以这样重现:

var connectionString = 'mongodb://127.0.0.1:27017/blog',
    mongojs = require('mongojs'),
    db = mongojs(connectionString, ['articles']),
    dataArticles = db.collection('articles');

db.on('error', function (err) {
    console.log('A');
});

db.on('connect', function () {
    console.log('B');
});

dataArticles.find({}).toArray(function (err, articles) {
    console.log('C');
});
这段代码在升级之前运行良好,但是现在,没有调用任何回调。没有错误,什么都没有。控制台仍然是空的

如果我将最后一个块替换为:

db.runCommand({ping: 1}, function (err, res) {
    console.log('C');
});
行为没有改变

代码看起来非常像来自的代码。有,但有,连接到数据库显式打开;在我的例子中,与文档类似,我让
mongojs
处理连接


为什么它没有到达回调?

这是一个简单的问题,包与Node.js的版本冲突

当我更新Node.js和dependencies的版本时,我忘记了运行
npm install
,导致旧软件包仍在使用


我认为,在旧版本的
mongojs
包中,有一个问题阻止它在Node.js 7.5上运行时调用回调。该错误可能是未知的(因为没有人试图在Node.js的最新版本上运行过时版本的软件包),也可能是已知的,并且在以后的版本中已修复。

这是一个简单的问题,软件包与Node.js的版本冲突

当我更新Node.js和dependencies的版本时,我忘记了运行
npm install
,导致旧软件包仍在使用


我认为,在旧版本的
mongojs
包中,有一个问题阻止它在Node.js 7.5上运行时调用回调。该错误可能是未知的(因为没有人尝试在Node.js的最新版本上运行过时的包版本),也可能是已知的,并在以后的版本中修复。

我刚刚将Node.js从7.2.1升级到7.5.0,这段代码在这两个版本中都适用。将
connectionString
更改为
mongodb://localhost:27017
query
{}
。我刚刚将Node.js从7.2.1升级到7.5.0,这两个版本的代码都适用于我。将
connectionString
更改为
mongodb://localhost:27017
查询到
{}