Mongo DB插入函数语法

我对Mongo的插入函数中看到的可选callback的目的感到困惑。 这到底是什么用的?

var mongo = require('mongodb').MongoClient var url = 'mongodb://localhost:27017/learnyoumongo'; // learnyoumongo is the Database var firstName = process.argv[2]; var lastName = process.argv[3]; var doc = { 'firstName': firstName, 'lastName': lastName } mongo.connect(url, function(err, db) { if (err) throw err; // db gives access to the database var docs = db.collection('docs'); docs.insert(doc,function(err, data){ // What is the purpose of this callback function? if (err) throw err; console.log(JSON.stringify(doc)); db.close() }) }); 

doc.insert是一个asynchronous调用。 在操作完成之前,它会立即返回。

如果你想在插入实际完成后做某些事情(包括检查是否成功),你需要在callback函数中调用(之后调用)。

请注意,您对mongo.connect做了同样的事情:您只能从callback中使用连接。

在Javascript编程中,这是一个非常常见的模式:启动后台操作,稍后接收结果作为callback的参数。