目前,我有一个节点mysql的问题。
我的sql表有以下条目:
(id,steamid,name)值(1,76561198124567784,name1)
我使用以下查询:
setInterval(function () {
    var connection = mysql.createConnection(db_access);
    connection.connect(function(err){
      if(err){
        console.log('Error connecting to Db');
        return;
      }
    });
    var q = "SELECT * FROM tradeOfferPoll";
    connection.query(q, function (err, results) {
        if (err) throw err;
        if (results.length > 0) {
            console.log(results[0].steamid);
            console.log(results[0].name);
        }
    });
}, 5000);因此,每隔5秒,这将检查数据库,当一行出现时,它会告诉我这两行。
我注意到名称是正确的,但是id是错误的。只有1位数的变化,这是最后一个数字。
76561198124567784
76561198124567780
为什么最后一个数字在变?
发布于 2016-04-03 19:30:55
正在发生的情况是,mysql模块自动将列的值转换为JavaScript Number,后者只能准确地表示值小于或等于Number.MAX_SAFE_INTEGER (9007199254740991)的整数。您的steamid值大于此值,因此当解析该值并将其转换为Number时,会丢失该值的精度。
通过在连接配置中设置mysql,可以禁用mysql模块中的所有自动转换值。您也可以通过设置supportBigNumbers: true, bigNumberStrings: true来锁定数字。
https://stackoverflow.com/questions/36390029
复制相似问题