MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Panggilan balik Node.js dengan pembaruan MongoDB tidak pernah kembali meskipun memperbarui DB

Saya rasa Anda salah paham bagaimana async.series bekerja.

Fungsi Anda di async.series jangan terima callback sebagai argumen dan mereka tidak menyebutnya. Dan request(...) itu barang mungkin bukan fungsi sama sekali. Itu mungkin mengapa itu merusak loop async. Coba ini:

async.series(
    [
        function(callback) { // <--- missing callback
            log('starting');
            db.connect('mongodb://127.0.0.1:27017/test',
                function(err, base){
                    if(err) throw err;
                    db = base;
                    callback(); // <--- missing callback
                });
        },
        function(callback) { // <--- missing function with callback
            request(website, function(err,resp,body) {
                start(err, resp, body, callback);
            })
        }
    ],
    function(){
        log('closing DB');
        db.close();
    }
);

Perhatikan bahwa saya telah menambahkan callback argumen saat memanggil start . Dengan demikian Anda harus memfaktorkan ulang kode Anda dengan baik sehingga setiap fungsi menerima callback yang dapat dipanggil di akhir ketika Anda tahu bahwa semua pekerjaan sudah selesai. Misalnya Anda dapat menambahkan async.parallel di dalam start dan fungsi ini mungkin terlihat seperti ini:

function start(err, resp, body, callback) {
    // some stuff happens here
    var jobs = []
    pageURLS.forEach(function(url, index, array){
        jobs.push(function(clb) {
            request(url, function(error,response,bodies) {
                // some stuff
                clb(); // <--- this refers to the local callback for the job
            });
        });
    });
    async.parallel(jobs, function() {
        // all jobs are done, let's finilize everything
        callback();
    });
};



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hapus catatan lama di mongodb berdasarkan Bulan

  2. Bagaimana mencegah _t dan _v saat memasukkan ke MongoDB?

  3. mongoDB:C# driver V2 Cara memperbarui item dalam koleksi bersarang

  4. Temukan berdasarkan id atau nama pengguna di mongo

  5. MongoDB:Hitung waktu diam antara setiap perubahan nilai status