使用节俭的node.js不正确的历元date

我似乎在node.js中获得了一个不同于在mongo数据库中存储并由服务返回的节点对象的date值

节俭定义文件(节俭v0.9.0),我有

struct Profile { ... 4: i64 createDate, 5: i64 lastUpdateDate 

Mongo纪录

 "createdTimestamp" : NumberLong("1366334385361"), "lastUpdatedTimestamp" : NumberLong("1366334385361") 

节点报告

 createDate: 534785233, lastUpdateDate: 534785233 

生成的节点节俭客户端似乎有I64引用。

 if (this.createDate !== null && this.createDate !== undefined) { output.writeFieldBegin('createDate', Thrift.Type.I64, 14); output.writeI64(this.createDate); output.writeFieldEnd(); } 

我很欣赏任何见解。

谢谢

给定数字的二进制表示是:

 1366334385361 -> 10011111000011111111000000010110011010001 534785233 -> 00000000000011111111000000010110011010001 

也就是说,如果你采用1366334385361的低32位,你会得到534785233.所以你的程序或包中的某个地方正在使用,它被转换/截断为32位整数,例如int(1366334385361)