前阵子帮人看个老接口,现象挺逗:数据库里那条记录明明在,前端一刷新就报"查无此物"。
蹲到半夜才弄明白。后端返的用户 ID 是十九位整数,比如 1234567890123456789。这数在 JSON 里传过来,前端用 JS 一解析,超过 2 的 53 次方的整数就得用双精度浮点硬凑,末几位直接被抹平。慢慢来等于同一张表,前端手里的 ID 和库里对不上,查当然空手而归。
以前不是这样的。那会儿数据量小,ID 短得能背下来,哪来这些弯弯绕。现在动不动雪花算法、分布式,数字一长,类型这层皮就露馅了。
解法也简单,让后端把 ID 当字符串吐出来就成。可这种坑,总得你熬过一个不睡的夜,才肯现原形。