Ambos
decimal
e bigint
os tipos podem conter valores muito grandes para "caber" no Number
do JavaScript :Number.MAX_SAFE_INTEGER
(JS):9007199254740991bigint
:-9223372036854775808 para 9223372036854775807decimal
:até 131072 dígitos antes do ponto decimal; até 16383 dígitos após o ponto decimal
Se você tiver certeza de que os valores em seu banco de dados caberão em
Number
, você pode convertê-los (não conheço o Knex, mas talvez ele tenha algum tipo de sistema de gancho que você possa usar para transformar dados que foram recuperados do banco de dados) ou alterar seu esquema de banco de dados para conter tipos de linha "menores". Como alternativa, também existem vários "big integer" pacotes para o Node que você pode usar.