这是包含node和mongo的简单findOne()
方法代码
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/blog', function(err, db) {
if(err) throw err;
var users = db.collection("users");
var query = { '_id' : 'bhavin3052' };
function getData (err, doc){
if(err) throw err;
console.dir(doc);
db.close();
}
users.findOne(query, getData(err, doc));
/*db.collection('users').findOne(query, function(err, doc) {
if(err) throw err;
console.dir(doc);
db.close();
});*/
});
当我调用getData()而不是'err‘时,define...which可以很好地处理匿名函数回调。
发布于 2015-08-19 16:29:28
试试这个:
users.findOne(query, getData);
.findOne需要查询和回调,但你取的是getData的查询和结果(结果是未定义的)。
发布于 2015-08-19 16:26:06
users.findOne(query, getData);
您需要将函数对象(getData
)传递给findOne
函数。如果您这样做:
users.findOne(query, getData(err, doc));
使用未定义的参数调用getData
,并将调用结果传递给findOne
。
https://stackoverflow.com/questions/32089294
复制相似问题