JavaScript中的64位整数,来自Mysql请求

时间:2015-06-01 07:46:10

标签: javascript mysql node.js integer 64-bit

我将此号码76561197993482001(64位int)存储为我的数据库中的bigint(20)。

但是当我尝试使用以下方式获取它时:

//node.js
    query('SELECT * FROM table',function(err,rows){
      console.log(rows[0]["id"]);// I get 76561197993482000
      });

我得错了号码。我想这是因为js无法处理64位变量。

我知道js中有bigint的库但这个数字直接存储在rows变量中。那我该怎么办?

有没有办法在发送请求时将其转换为文本?

1 个答案:

答案 0 :(得分:3)

根据您使用的中间件,大多数都有支持大数字的设置,最常见的中间件使用supportBigNumbers选项

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host              : 'example.org',
  user              : 'bob',
  password          : 'secret',
  supportBigNumbers : true
});