javascript - node.js 将数组传递给 mysql 回调

标签 javascript mysql node.js

是否可以将数组传递到 mysql 回调中,例如:

connection.query('SELECT count(id) as wynik FROM used where asset_id = 
  \''+asid+'\'', inventory[i],function(err,wiersze){
    console.log(inventory[i]);
});

现在 inventory[i] 里面不可用,但我需要它。

最佳答案

由于您处于 for 循环中,因此您需要使用立即调用的匿名函数或简单的 .forEach()。两者都在下面作为示例提供。

立即调用匿名函数

for (var i = 0; i < inventory.length; i++) {
    (function(i) {
        if (inventory[i].market_hash_name == rows[j].real_name) {
            var asid = inventory[i].assetid;
            connection.query('SELECT count(id) as wynik FROM used where asset_id = \'' + asid + '\'', function(err, wiersze) {
                console.log(inventory[i]);
                process.exit(1);
                if (wiersze[0].wynik == 0) {
                    var employee = {
                        asset_id: asid,
                        trans_id: rows[j].tid
                    };
                    connection.query('INSERT INTO used SET ?', employee, function(err, res) {
                        if (err) throw err;
                        offer.addMyItem(inventory[i]);
                    });
                    licznik++;
                }

            });

        }
    })(i);
});

.forEach()

inventory.forEach(function(item) {
    if (item.market_hash_name == rows[j].real_name) {
        var asid = item.assetid;
        connection.query('SELECT count(id) as wynik FROM used where asset_id = \'' + asid + '\'', function(err, wiersze) {
            console.log(item);
            process.exit(1);
            if (wiersze[0].wynik == 0) {
                var employee = {
                    asset_id: asid,
                    trans_id: rows[j].tid
                };
                connection.query('INSERT INTO used SET ?', employee, function(err, res) {
                    if (err) throw err;
                    offer.addMyItem(item);
                });
                licznik++;
            }

        });

    }
});

关于javascript - node.js 将数组传递给 mysql 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34966933/

相关文章:

javascript - 在 Node.js 中,我如何与客户端 JavaScript 进行通信?

javascript - 保持水平滚动条,但在将鼠标悬停在 div 区域内时禁用水平滚轮滚动,并在将鼠标悬停在水平滚动条上时再次工作

javascript - 想要消失输入文本框默认值

node.js - Watson视觉识别运行错误

android - retrofit2 从mysql中获取数据并显示在listview上

php - SELECT 查询不适用于使用准备好的语句的 IN

node.js - 使用 aws api 网关的 Wallet Pass 自动更新 Web 服务

javascript - Javascript 运行时如何将 setTimeout() 识别为 WEB API?

javascript - 我怎样才能使用javascript获得两个数字的总数

mysql - XSLT - 删除最后一个逗号