标签搜索

目 录CONTENT

文章目录

前后端联调-前端不能识别雪花算法id解决方案

高大北
2022-12-16 / 0 评论 / 0 点赞 / 117 阅读 / 212 字 / 正在检测是否收录...
  • 问题

    • 雪花算法生成的id作为主键时,因为其长度为19位
    • 而前端JS一般能处理16位,如果不处理的话在前端会造成精度丢失,最后两位会变成00
  • 后端 解决方式

    • 直接把id类型改为String就行,使用JackSon包的注解
    • 对应的实体类主键属性加入注解@JsonSerialize
    @JsonSerialize(using = ToStringSerializer.class)
    @TableId
    private Long id;
    
  • 前端 解决方式

    • 前端使用 json-bigint 模块进行处理,一般都是用axios数据请求
    npm install json-bigint
    
    #代码封装
    axios.defaults.transformResponse = [
      function (data) {
        const json = JSONBIG({
          storeAsString: true
        })
        const res = json.parse(data)
        return res
      }
    ]
    
    或 
    
    axios.defaults.transformResponse = [
        function (data) {
            const json = JsonBigint({
                storeAsString:true
            })
            const res = json.parse(data)
            return res
        }
    ]
    
    axios.create({
        baseURL: 'http://baidu.com',
        timeout: 5000,
        timeoutErrorMessage: '请求时间过长,请联系后端或者优化请求',
    })
    
0

评论区