【问题标题】:Use node-mysql to execute additional queries from each result使用 node-mysql 从每个结果中执行附加查询
【发布时间】:2014-06-05 07:36:26
【问题描述】:

我正在尝试让 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

【问题讨论】:

    标签: mysql node.js node-mysql


    【解决方案1】:
    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
        });
     })
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-07-26
        • 1970-01-01
        • 2017-05-29
        • 2017-12-04
        • 2018-03-06
        • 2019-12-30
        • 1970-01-01
        • 2012-11-29
        • 1970-01-01
        相关资源
        最近更新 更多