💡
原文中文,约1500字,阅读约需4分钟。
📝
内容提要
在项目中,作者封装了生成全局唯一UUID的函数,但因环境差异导致UUID格式不一致,最终在正式环境中出现错误,影响了后续业务逻辑处理。
🎯
关键要点
- 封装的功能应保持输出结果格式一致。
- 项目中需要生成全局唯一的UUID来标记数据。
- 最初使用时间戳+自增数生成唯一ID,但后改用crypto.randomUUID()方法。
- 封装的UUID生成函数在不同环境下生成的格式不一致。
- 本地开发和测试环境使用HTTP协议,生成的UUID格式一致,未发现问题。
- 正式环境使用HTTPS协议,导致UUID格式不同,影响业务逻辑。
- 业务逻辑中使用[name]-[uuid]拼接成key,分割时出现错误。
- 分割代码在正式环境中因UUID格式不同导致取到的UUID不完整。
❓
延伸问答
为什么在正式环境中生成的UUID格式与测试环境不同?
正式环境使用HTTPS协议,导致UUID生成时采用了不同的方法,从而格式不一致。
如何生成全局唯一的UUID?
可以使用crypto.randomUUID()方法,或者结合时间戳和自增数生成唯一ID。
封装UUID函数时需要注意什么?
需要确保不同环境下输出结果格式一致,以避免后续业务逻辑处理出错。
在业务逻辑中如何使用UUID?
可以将UUID与其他标识拼接成key,例如使用[name]-[uuid]的格式。
为什么使用UUID时会出现分割错误?
因为在正式环境中生成的UUID包含中横线,而测试环境生成的UUID没有,导致分割时取到的UUID不完整。
如何确保UUID生成的一致性?
应统一使用一种生成UUID的方法,并确保在所有环境中都能生成相同格式的UUID。
➡️