为什么在从 MongoDB 读取所有数据时从未调用回调?
Why the callback never gets called when reading all data from MongoDB?
我最近将我的机器更新到 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');
});
此代码在升级前运行良好,但现在调用了 none 个回调。没有错误,什么都没有。控制台仍然是空的。
如果我将最后一个块替换为:
db.runCommand({ping: 1}, function (err, res) {
console.log('C');
});
行为没有改变。
该代码看起来与 the official documentation. There is a similar question on Whosebug 中的代码非常相似,但是在那里,与数据库的连接被显式打开;在我的例子中,与文档类似,我让 mongojs
处理连接。
为什么没有到达回调?
这是一个简单的问题,包与Node.js的版本冲突。
虽然我更新了 Node.js 和依赖项的版本,但我忘记了 运行 npm install
,导致旧包仍在使用。
我想在 mongojs
包的旧版本中的某个地方,有一个问题阻止它在 运行ning on Node.js 7.5 时调用回调。该错误要么是未知的(因为没有人试图 运行 在最新版本的 Node.js 上使用过时的软件包版本),要么是已知的并在以后的修订版中修复。
我最近将我的机器更新到 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');
});
此代码在升级前运行良好,但现在调用了 none 个回调。没有错误,什么都没有。控制台仍然是空的。
如果我将最后一个块替换为:
db.runCommand({ping: 1}, function (err, res) {
console.log('C');
});
行为没有改变。
该代码看起来与 the official documentation. There is a similar question on Whosebug 中的代码非常相似,但是在那里,与数据库的连接被显式打开;在我的例子中,与文档类似,我让 mongojs
处理连接。
为什么没有到达回调?
这是一个简单的问题,包与Node.js的版本冲突。
虽然我更新了 Node.js 和依赖项的版本,但我忘记了 运行 npm install
,导致旧包仍在使用。
我想在 mongojs
包的旧版本中的某个地方,有一个问题阻止它在 运行ning on Node.js 7.5 时调用回调。该错误要么是未知的(因为没有人试图 运行 在最新版本的 Node.js 上使用过时的软件包版本),要么是已知的并在以后的修订版中修复。