Postgresql中的十进制值在Node.js中作为String返回

Tho*_*ski 2 postgresql node.js knex.js

当我在node.js服务器上运行查询到我的postgresql数据库时,我得到的值是变量类型字符串,实际上它是postgresql数据库中的小数.

我不知道为什么我的小数或甚至bigInts作为类型字符串返回.我使用knex作为我的ORM,如果这有所作为.到目前为止,我在网上看到的内容并不是很清楚该怎么做,似乎这种情况自动发生以保持精确性???

最好的解决办法是什么?是否最好使用parseFloat将我从查询返回的字符串变量转换为小数?

rob*_*lep 6

两者decimalbigint类型可能包含太大而不适合JavaScript的值Number:

如果您确定数据库中的值适合Number,您可以转换它们(我不知道Knex,但它可能有某种钩子系统,您可以使用它来转换从数据库中检索的数据) ),或更改您的数据库架构以包含"较小"的行类型.

或者,也可以使用Node的各种"大整数"包.