只是看看mongodb驱动程序的示例代码: http://mongodb.github.io/node-mongodb-native/2.2/tutorials/projections/
var MongoClient = require('mongodb').MongoClient
, assert = require('assert');
// Connection URL
var url = 'mongodb://localhost:27017/test';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected correctly to server");
findDocuments(db, function() {
db.close();
});
});
var findDocuments = function(db, callback) {
// Get the documents collection
var collection = db.collection( 'restaurants' );
// Find some documents
collection.find({ 'cuisine' : 'Brazilian' }, { 'name' : 1, 'cuisine' : 1 }).toArray(function(err, docs) {
assert.equal(err, null);
console.log("Found the following records");
console.log(docs)
callback(docs);
});
}
Shouln的最后一行回调(docs)是回调(null,docs)?
答案 0 :(得分:2)
这取决于您的回调。
有error-first callbacks,它确实将错误作为第一个参数,将数据作为第二个参数,如:callback (err, data)
然而,在Mongo的官方示例网页(你指出的那个)中,他们传递了一个没有错误参数的回调。错误优先回调在Node的内置模块中无处不在,但Node并不强制您以任何方式使用它们。这就是Mongo开发人员决定做的事情。
但是,您可以轻松地重写Mongo示例以使用错误优先回调。