Javascript 集合中mongodb文档的列表抛出错误
我有这个密码Javascript 集合中mongodb文档的列表抛出错误,javascript,mongodb,Javascript,Mongodb,我有这个密码 var MongoClient = require('mongodb').MongoClient , assert = require('assert'); // Connection URL var url = 'mongodb://user:pwd@lo037234.mlab.com:37234/heroku_plpzj3t5j'; // Use connect method to connect to the Server MongoClient.connect(u
var MongoClient = require('mongodb').MongoClient
, assert = require('assert');
// Connection URL
var url = 'mongodb://user:pwd@lo037234.mlab.com:37234/heroku_plpzj3t5j';
// Use connect method to connect to the Server
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected correctly to server");
db.collection('members', function(err, collection) {
collection.find({}, function(err, cursor) {
cursor.each(function(err, item) {
console.log(item.telephoneNumber);
});
// our collection has returned, now we can close the database
db.close();
});
});
});
我正在使用它列出集合成员中的所有电话号码
但是,代码列出了这些数字,然后显示如下错误
Connected correctly to server
0820069005
0920069005ww
0220929975
/home/obulex/node_modules/mongodb/lib/utils.js:98
process.nextTick(function() { throw err; });
^
TypeError: Cannot read property 'telephoneNumber' of null
at /home/obulex/workers/actors/actor.js:14:23
at handleCallback (/home/obulex/node_modules/mongodb/lib/utils.js:96:12)
at /home/obulex/node_modules/mongodb/lib/cursor.js:741:16
at handleCallback (/home/obulex/node_modules/mongodb/lib/utils.js:96:12)
at /home/obulex/node_modules/mongodb/lib/cursor.js:675:5
at handleCallback (/home/obulex/node_modules/mongodb-core/lib/cursor.js:172:5)
at setCursorDeadAndNotified (/home/obulex/node_modules/mongodb-core/lib/cursor.js:507:3)
at nextFunction (/home/obulex/node_modules/mongodb-core/lib/cursor.js:651:7)
at Cursor.next [as _next] (/home/obulex/node_modules/mongodb-core/lib/cursor.js:692:3)
at nextObject (/home/obulex/node_modules/mongodb/lib/cursor.js:672:8)
为什么在代码末尾出现错误?问题是代码正在find()方法中执行回调 根据API,collection.find()返回一个游标对象: 尝试根据上面链接或下面链接的教程中显示的一些示例重新构造代码: 正如Henrique提到的,由于原始提交中包含的敏感信息,您可能希望删除此问题。这最终奏效了
var MongoClient = require('mongodb').MongoClient
, assert = require('assert');
// Connection URL
var url = 'mongodb://logan:password32@username32.mlab.com:37234/heroku_xpzj3t5j';
// Use connect method to connect to the Server
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected correctly to server");
var cursor = db.collection('members').find( );
cursor.each(function(err, doc) {
assert.equal(err, null);
if (doc != null) {
console.log(doc.telephoneNumber);
} else {
//callback();
}
});
});
您是否检查过它是否返回错误而不是项目?也许它会给出一个CLUE URI,其中包含您的用户名和密码,以明文形式显示。强烈建议尽快更改这些选项。-你使用的是什么版本的驱动程序?@AdamHarrison,如果OP删除这个问题并在没有合理数据的情况下重新创建它会更好。所以要跟踪问题和答案的变化。所谓的敏感数据已经被故意破坏,没有字典攻击可以重新排列它们,所以没关系。