Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 控制台中未定义的结果_Javascript_Node.js_Steambot - Fatal编程技术网

Javascript 控制台中未定义的结果

Javascript 控制台中未定义的结果,javascript,node.js,steambot,Javascript,Node.js,Steambot,在运行node.js时,我使用此Syntax获得当前_游戏的“存款超过未定义”结果: if(offer.items_to_receive == undefined) return; mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields) { if(offer.items_to_receive.length

在运行node.js时,我使用此Syntax获得当前_游戏的“存款超过未定义”结果:

if(offer.items_to_receive == undefined) return;             
mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', 
function(err, row, fields) {

    if(offer.items_to_receive.length > row[0].value) {
        offers.declineOffer({tradeOfferId: offer.tradeofferid});
        offer.items_to_receive = [];
        var unixtime = Math.round(new Date().getTime()/1000.0);
        mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'Sorry, but you deposited too many items\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {});
        return;
    } else {
        mysqlConnection.query('SELECT `value` FROM `info` WHERE         `name`=\'current_game\'', 
        function(err, row, fields) {  
            var current_game = (row[0].value);
            mysqlConnection.query('SELECT COUNT(item) FROM `game' + current_game + '` AS maxitemperperson WHERE `userid`=\''+offer.steamid_other+'\'' , function(err, row) {  
                someVari = row[0].maxitemperperson;
                console.log('Deposited over ' +someVari);
                if((someVari + offer.items_to_receive.length) > 10) {
                    offers.declineOffer({tradeOfferId: offer.tradeofferid});                        
                    mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'Sorry, but you deposited too many items\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, rowl, fields) {});
                    return;
                }
            })
        })
    }
});
synthax中的错误在哪里?基本上,直到“else”的第一部分是有效的,但之后我尝试从某个表(通过当前的_游戏变量动态生成)中计算具有相同用户ID的项目数,然后再添加另一个项目数,并与10(也可以写为行[0])进行比较


任何帮助都将不胜感激。

someVari=行[0]。maxitemperperson;正在将
未定义的
分配给
someVari

这意味着
行[0]
存在,但没有名为
maxitemperperson
的属性(或者,不太可能的情况是,该属性存在,但其本身设置为
未定义

作为一种最小的调试技术,您可以使用
console.dir(行[0]);
来了解发生了什么


您还应该通过检查回调中的
err
值来检查查询是否没有导致错误。

您的
AS
别名在SQL语句中的错误位置:

'SELECT COUNT(item) FROM `game' + current_game + '` AS maxitemperperson WHERE `userid`=\''+offer.steamid_other+'\''
这将为表名添加别名,因此您可以执行
COUNT(maxitemperperperperson.item)
来引用它(如果查询中有多个表,则此操作非常有用)

你想要的是:

'SELECT COUNT(item) AS maxitemperperson FROM `game' + current_game + '` WHERE `userid`=\''+offer.steamid_other+'\''

检查console.log(row)
所包含的内容我刚才说的。它说的是“存款超过未定义”。所以maxitemperperson是未定义的。为什么?我做了console.dir(someVari);它是未定义的。sql语句错了吗?我认为sql语句在获取值方面也有问题,所以获取当前游戏没有问题。(did console.dir(当前_游戏))我做了console.dir(someVari);它是未定义的。sql语句错误吗?我不会说错,相当不完整。您只在sql语句中请求
COUNT(item)
,因此结果只包含此项。将其更改为
SELECT COUNT(item),maxitemperperperperson…
,它应该可以工作(假设数据库中存在此列)。我想将变量的属性设置为count(item)result。Maxitemperperson不存在。它只是select语句结果的别名。然后
选择count(item)作为Maxitemperperson
应该这样做。@GeraldSchneider那么有什么问题吗…?它成功了!非常感谢!:)并且bot正确响应了脚本:)