Node.jsでコールバックスタイルのプログラミングを使用する方法を学ぶのにイライラする問題があります。MongoDBデータベースへのクエリがあります。結果を実行する関数を渡すと機能しますが、フラット化して値を返すようにします。これを正しく行う方法についてのヘルプや指示をいただければ幸いです。これが私のコードです:
var getLots = function(response){
db.open(function(err, db){
db.collection('lots', function(err, collection){
collection.find(function(err, cursor){
cursor.toArray(function(err, items){
response(items);
})
})
})
})
}
私はもっとこのようなものが欲しいです:
lots = function(){
console.log("Getting lots")
return db.open(openCollection(err, db));
}
openCollection = function(err, db){
console.log("Connected to lots");
return (db.collection('lots',findLots(err, collection))
);
}
findLots = function(err, collection){
console.log("querying 2");
return collection.find(getLots(err, cursor));
}
getLots = function(err, cursor) {
console.log("Getting lots");
return cursor.toArray();
}
データの最終セットが関数呼び出しを介してバブルバックする場所。
問題は、Node.jsから、エラーが定義されていない、またはコレクションが定義されていないというエラーが表示されることです。何らかの理由でコールバックをネストすると、正しいオブジェクトが渡されます。このフラットなスタイルにしようとすると、物事が定義されていないと文句を言います。必要なオブジェクトを渡す方法がわかりません。