gpt4 book ai didi

javascript - 默认情况下,response.send(来自node.js/restify应用程序)将整数序列化为32位低/高部分?

转载 作者:行者123 更新时间:2023-12-03 03:50:44 24 4
gpt4 key购买 nike

我正在使用带有restify(最新)的 Node 6.x(npm 3.x)。如果 javascript 对象包含设置为整数的属性,默认情况下,restify.send() 会将该整数序列化为“低”和“高”部分——大概表示 64 的低/高 32 位组件-位整数。

如何关闭此默认行为,以便整数不被编码为低位和高位部分?

谢谢。

最佳答案

使用 integer 时我可以重现此行为,是你用来表示可能超过 JavaScript 的 Number.MAX_SAFE_INTEGER 的整数值的。 ?

如果是这样,那么你需要将这些integer实例转换为正确的JS数字,否则它们无法在JSON中表示为数值:

Number(obj.intProperty) // or: obj.intProperty.toNumber()

但是:我认为您使用整数是有原因的。如果 obj.intProperty 表示的数字太大而无法表示为普通 JS Number,则转换它可能会产生无效结果(这就是 JSON 表示的原因code>integer 是一个由两个 32 位值组成的对象。

编辑:事实证明,该问题是由 Neo4J 驱动程序的 64 位整数表示引起的,如下所述:https://www.npmjs.com/package/neo4j-driver#a-note-on-numbers-and-the-integer-type

关于javascript - 默认情况下,response.send(来自node.js/restify应用程序)将整数序列化为32位低/高部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45176942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com