我有一个节点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
2条答案
按热度按时间ctehm74n1#
由于您是在编程端(即节点js)进行计算,因此将内容存储为
VARCHAR(50)
并在节点js中将其解析为整数:mysql搞乱了这个巨大的整数值,除非您在mysql服务器本身执行数学运算,否则您不需要。
ugmeyewa2#
nodejsmysql提供了supportbignumbers和bignumberstrings配置选项。启用这两个选项将强制返回大的数字(bigint和decimal)作为javascript字符串返回。