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

时间:2017-03-20 11:01:56

标签: node.js postgresql knex.js

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

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

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

1 个答案:

答案 0 :(得分:5)

decimalbigint类型都可能包含太大而无法“适应”JavaScript Number中的值:

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

或者,您也可以使用各种"big integer" Node包。