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

3
我将这个 64 位整数 76561197993482001 存储为 bigint(20) 在我的数据库中。
但是当我尝试使用以下语句获取它时:
//node.js
    query('SELECT * FROM table',function(err,rows){
      console.log(rows[0]["id"]);// I get 76561197993482000
      });

我得到了错误的数字。我猜这是因为 JavaScript 无法处理 64 位变量。
我知道 JavaScript 中有关于 bigint 的库,但是这个数字直接存储在 rows 变量中。那么我该怎么办呢?
当我发送请求时,是否有一种方法可以将它转换为文本呢?

2
根据您使用的中间件,大多数中间件都有一个设置项,用于启用对大数字的支持。 最常见的中间件 使用 supportBigNumbers 选项来实现此功能。 - adeneo
尝试在 SQL 查询中将 bigint 强制转换为字符串。 - Vivek Gupta
谢谢! supportBigNumbers 选项解决了问题! - lopata
@adeneo:请将此转化为答案,以便我们可以适当地点赞。 - Aaron Digulla
1个回答

4

根据您使用的中间件不同,大多数中间件都有一个设置项来启用对大数字的支持,最常见的中间件使用supportBigNumbers选项来实现此功能。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接