MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Обратното извикване на Node.js с актуализация на MongoDB никога не се връща, въпреки че актуализира DB

Мисля, че не разбирате как async.series работи.

Вашите функции в async.series не приемайте callback като аргумент и не го наричат. И това request(...) нещата вероятно изобщо не са функция. Вероятно затова прекъсва асинхронния цикъл. Опитайте това:

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();
    }
);

Имайте предвид, че добавих callback аргумент при извикване на start . По този начин ще трябва да преработите кода си така, че всяка функция да приема callback което може да се извика в края, когато знаете, че всички работи са свършени. Например можете да добавите async.parallel вътре в start и тази функция може да изглежда така:

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. Премахване на database.yml при използване на Mongoid в Rails 3.2

  2. MongoDB и MongoJS - не могат да накарат runCommand да работи за текстови заявки

  3. Какви са всички мангусти и къде са документирани?

  4. Как да актуализирам стойността на конкретен вграден документ, вътре в масив, на конкретен документ в MongoDB?

  5. Преоформете масив, който се съхранява в колекция и експортирайте в CSV