使用node-mysql从每个结果执行其他查询

时间:2014-06-05 07:36:26

标签: mysql node.js node-mysql

我正在尝试使用node-mysql连接查询与原始查询的结果串联工作。完成所有设置后,这是有问题的部分。似乎连接已经结束。如何确保processRow中的查询与原始结果一起执行?

function processRow(row, callback){
    connection.query('INSERT INTO other_table VALUES (?)', row.id, function(err, rows, fields) {
        if (err) throw err;
    });

    callback();
}

var query = connection.query('SELECT id from tbl limit 2');

query
    .on('error', function(err){
        throw err;
    })
    .on('fields', function(fields){

    })
    .on('result', function(row){
        processRow(row, function(){
            connection.resume();
        });
    })
    .on('end', function(){
        //
    });

connection.end();

https://github.com/felixge/node-mysql

2 个答案:

答案 0 :(得分:0)

function processRow(row, callback){
    connection.query('INSERT INTO other_table VALUES (?)', row.id, function(err, rows,    fields) {
        if (err) throw err;
        callback();//callback should go here   
    }); 
}

然后你可以结束连接:

query.on('result', function(row){
    processRow(row, function(){
        connection.end(); //maybe end the connection once insertion into the table is done
    });
 })

答案 1 :(得分:0)

我认为您的代码问题是在调用connection.pause()之前必须致电processRow()