在nodejs中处理从数据库返回的大量数据的最佳方法是什么?

4sup72z8  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(400)

我有一个节点js应用程序从mysql数据库获取数据。其中一列的列类型是bigint(20)。这将返回一个大的整数值,这超出了javascript的数字范围。处理这个问题最好的方法是什么?
样本代码

let rows = database.query("select resourcekey from resourceTable");

for(var i = 0; i < rows.length; i++) {
  console.log(rows[i].resourcekey);
}

示例resourcekey:9220610450398789367返回值:9220610450398790000

ctehm74n

ctehm74n1#

由于您是在编程端(即节点js)进行计算,因此将内容存储为 VARCHAR(50) 并在节点js中将其解析为整数:

for(var i = 0; i < rows.length; i++) {
  console.log(parseInt(rows[i].resourcekey));
}

mysql搞乱了这个巨大的整数值,除非您在mysql服务器本身执行数学运算,否则您不需要。

ugmeyewa

ugmeyewa2#

nodejsmysql提供了supportbignumbers和bignumberstrings配置选项。启用这两个选项将强制返回大的数字(bigint和decimal)作为javascript字符串返回。

let dbConnection = mysql.createConnection({supportBigNumbers: true, bigNumberStrings: true});

相关问题