Redis与前端数据类型不匹配导致比较失败的解决方案
使用redigo库操作Redis时,经常遇到Redis返回值与前端值类型不一致的问题,导致比较失败。本文以一个具体案例,分析如何解决[]byte类型Redis返回值与前端字符串值比较不相等的问题。
问题描述:
开发者使用redigo库从Redis获取键为”123@qq.com”的值”8414″。前端通过c.query(“code”)获取验证码”8414″。直接比较Redis返回的[]byte类型值与前端字符串值,结果总是失败。即使将前端字符串转换为[]byte,比较结果依然错误。根本原因是Redis返回的是字节数组,前端获取的是字符串,两者表示方式不同。Redis返回的字节数组包含字符串的字节表示,可能包含额外字符,例如引号。
立即学习“前端免费学习笔记(深入)”;
原始代码片段:
email := c.query("email")code := c.query("code")str, _ := gredis.get(email)fmt.Println(str, string(str), "", []byte(code+""), code)if string(str) != string(code) { appg.failjson(e.error, "验证码错误") return}
登录后复制
本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。