Postgresql中的Decimal值在Node.js中以Stringforms返回

当我在node.js服务器上对postgresql数据库运行查询时,我得到的值是variablestypesstring ,实际上它是postgresql数据库中的一个十进制数

我不知道为什么我的小数或甚至bigInts返回typesstring。 我使用knex作为我的ORM,如果这有所作为。 到目前为止,我在网上阅读的是不是很清楚该怎么做,似乎这自动发生,以保持精度?

什么是最好的解决这个? 是最好把我的查询返回的stringvariables转换为十进制使用parseFloat?

decimalbiginttypes都可能包含的值太大bigint适合JavaScript的Number

  • Number.MAX_SAFE_INTEGER (JS):9007199254740991
  • bigint-9223372036854775808到9223372036854775807
  • decimal小数点前最多131072位; 小数点后最多16383位

如果您确定数据库中的值适合于Number ,则可以将它们转换(我不知道Knex,但可能有一些钩子系统可用于转换从数据库中检索的数据数据库),或者更改数据库模式以包含“较小”的行types。

另外,也可以使用Node的各种“大整数”包。