Entrambi decimal
e bigint
i tipi possono contenere valori troppo grandi per "entrare" nel Number
di JavaScript :
Number.MAX_SAFE_INTEGER
(JS):9007199254740991bigint
:-9223372036854775808 a 9223372036854775807decimal
:fino a 131072 cifre prima del punto decimale; fino a 16383 cifre dopo la virgola
Se sei abbastanza sicuro che i valori nel tuo database rientreranno in Number
, puoi convertirli (non conosco Knex, ma forse ha una sorta di sistema di hook che puoi utilizzare per trasformare i dati recuperati dal database) o modificare lo schema del database in modo che contenga tipi di riga "più piccoli".
In alternativa, ci sono anche vari "big integer" pacchetti per Node che potresti essere in grado di utilizzare.