I am missing something really obvious here and I hope you can help me. I am 
trying to achieve the following:

Fetch an array of results

For each item in results
-- fetch md5 data and add to item
-- fetch server data and add to item
-- insert item into DB

I'll paste my Seq chain below but here is the problem. In the parEach() I 
get a row as expected from the previous step. I create my object and fill 
in some data. I then call the two par() steps. The problem is that the arg 
to callback in par() is wrong. Instead of getting the cncInfo object I get 
the row object that was passed to the parEach() callback.

I added console logs with [A], [B], and [C]. My expectation is that at each 
step I should be seeing the same object. This is not the case. The value at 
[B] and at [C] is the row object passed to parEach not the cncInfo object.

Where am I going wrong?

Thanks for any advice you can give me.
Thanks
Steve



 Seq().seq('source', function(){
        console.log('[INFO]', 'Starting sequence');
        var _this = this;
        /*
         * Get the source data
         */
        var q = 'SELECT A.* FROM BotCCServer A LIMIT 1';
        DbSource.query(q, function(err, result, fields){
            if(err){
                cleanup(err);
            }else{
                _this(null, result);
            }
        }); 

    }).flatten().parEach(function(row, i){
        console.log('[INFO]', 'Par Each');

        var _this = this;
        var cncInfo = new CNCInfo();
        cncInfo._id = row.entry_id;
        cncInfo.entry_id = row.entry_id;
        cncInfo.entry_type = row.entry_type;

        console.log('[A]',cncInfo);
        _this(null, cncInfo);


    }).par('md5s', function(cncInfo){
        console.log('[INFO]', 'Seq MD5');
        console.log('[B]', this.stack);

        var _this = this;
        //cncInfo.md5s.push(cncInfo.entry_id);
        _this(null, cncInfo);

    }).par('servers', function(cncInfo){
        console.log('[INFO]', 'Seq servers');
        console.log('[C]', cncInfo);

        var _this = this;
        //cncInfo.servers.push(cncInfo.entry_id);
        _this(null, cncInfo);

    }).seq('insert', function(cncInfo){
        console.log('[INFO]', 'Seq insert');

        var _this = this;
        DbDest.write('botnet_cnc_info', cncInfo, function(err, resp){
            if(err){
                _this(err);
            }else{
                _this(null, resp);
            }
        });  

    }).seq('final', function(resp){

        cleanup(null, resp);

    }).catch(function(err){
        cleanup(err);
    });


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to