Les deux decimal
et bigint
les types peuvent contenir des valeurs trop grandes pour "tenir" dans le Number
de JavaScript :
Number.MAX_SAFE_INTEGER
(JS):9007199254740991bigint
:-9223372036854775808 à 9223372036854775807decimal
:jusqu'à 131072 chiffres avant la virgule ; jusqu'à 16383 chiffres après la virgule
Si vous êtes certain que les valeurs de votre base de données tiendront dans Number
, vous pouvez les convertir (je ne connais pas Knex, mais il a peut-être une sorte de système de crochet que vous pouvez utiliser pour transformer les données extraites de la base de données), ou modifier le schéma de votre base de données pour qu'il contienne des types de lignes "plus petits".
Alternativement, il existe également divers "big integer" packages pour Node que vous pourrez peut-être utiliser.