这是带有node和mongo
的simnplefindOne()
方法代码
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()时,错误地说是“错误”。没有定义...这与匿名函数回调完全正常。
答案 0 :(得分:1)
试试这个:
users.findOne(query, getData);
.findOne需要查询和回调,但你接受getData的查询和结果(结果是“未定义”)。
答案 1 :(得分:0)
users.findOne(query, getData);
您需要将函数对象(getData
)传递给findOne
函数。如果你这样做:
users.findOne(query, getData(err, doc));
使用未定义的参数调用getData
并将调用的结果传递给findOne
。