做用户中心项目时遇到的从没见过的bug

前端在用户管理页面查询用户时,请求后端查询用户的接口,后端返回的响应数据是数据库中的正确信息,但是preview中id却出现了问题,在前端页面发现id跟后端数据库中的id有些不一样,id的长度很长,前面都是一样的,就后面几位不一样。刚开始我还没有发现这个错误,直到后面我测试前后端的删除接口,根据id删除用户时,发现怎么删除都删不了,于是看了一下断点传来的id,结果跟后端数据库的id不一样,怪不得呢~原来问题在这里。 于是我打开浏览器,搜索这个问题,在博客社区中发现了有人也产生过同样的问题。原来,由于我使用的mybatisplus,在注册用户时,用户id默认是雪花算法生成的,所以id的值有时候会非常大,而后端id是Long类型,前端js中的number类型最大长度为16位,当后端生成的id大于nunber的最大限度时,展示的时候就会丢失精度,所以返回的id和展示的id就不一样了。 解决方案: 将后端的id修改为String类型,就能完美解决了。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
Weisley
下载 APP