03-理解回调函数
19.1.1 理解回调函数
在接下来的几小节,您将看到Node.js MongoDB对象的各种方法。这些方法大多接受一个回调函数作为参数。本章只是想提醒您,在Node.js中,一切都是异步的,因此当您读写数据库,并想根据读写情况执行其他操作时,这些操作必须在回调函数中进行。
例如,下面的代码显示对一个Collection对象执行findOne()操作得到的结果。注意到显示文档的代码嵌套在传递给方法connect()、collection()和findOne()的回调函数中:
mongo.connect("mongodb://localhost/", function(err, db) {
var myDB = db.db("words");
myDB.collection("word_stats", function(err, collection){
collection.findOne(function(err, doc)){
console.log(doc);
});
});
});
在本章的所有方法中,回调函数的第一个参数是一个错误(如果发生了的话)。如果第一个参数对应的是一个值,您可以检查该错误。第二个参数通常是操作执行后的结果,比如对find()来说,结果是Cursor对象;对于count()来说,结果是一个数值。