2017-09-13 15 views
0

私はnodejs + mongodbを学習しています。私は今のところmongooseを使いたくないです。 以下の関数はうまくいきます。しかし、私の質問はこれをさらに簡単にする方法です。強調表示された***ステートメントを除いて、両方の機能が同じに見えます。NodeJS + MongoDB - 簡略化関数

//for returning records 

var resultsQuery = function(search, select, callback) { 
    mongo.connect(mongoURL, function(err, db) { 
     if (err){ throw err; } 
     *** db.collection("coll").find(search, select).toArray(function(err, result) { 
      if (err) { throw err; } 
      callback(result); 
      db.close(); 
     }); 
    }); 
}; 

// for updating records 

var resultsUpdate = function(filter, set, callback) { 
    mongo.connect(mongoURL, function(err, db) { 
     if (err){ throw err; } 
     *** db.collection("coll").update(filter, set, function(err, result) { 
      if (err) { throw err; } 
      callback(result); 
      db.close(); 
     }); 
    }); 
}; 

答えて

0

1つの関数にすべての一般的なものを入れて、コールバックに渡します

var resultsQuery = function(search, select, callback) { 
    xpto(callback, (db, cb) => db.collection("coll").find(search, select).toArray(cb)) 
}; 

// for updating records 
var resultsUpdate = function(filter, set, callback) { 
    xpto(callback, (db, cb) => db.collection("coll").update(filter, set, cb)) 
}; 

function xpto(callback, op) { 
    mongo.connect(mongoURL, function(err, db) { 
     if (err){ throw err; } 
      op(db, function(err, result) { 
      if (err) { throw err; } 
      callback(result); 
      db.close(); 
     }); 
    }); 
} 

は、これを行うためのさまざまな方法がありますが、私はこのアイデアを示してだと思います。

関連する問題