prisma报错Do not know how to serialize a BigInt
作者:linkyang
标签:nuxt3
发布时间:2024年12月20日 19:20:04
更新时间:2025年02月27日 02:20:03
在使用prisma
开发个人博客的时候遇到一个不知道如何序列化BigInt的bug:Do not know how to serialize a BigInt
。在prisma的github上有人提出了这个Issues,经过查阅分析这个问题可能出现的原因:
- 当 Prisma 从数据库查询数据时,它返回的是原生的 JavaScript 对象。在很多情况下,这些对象会被转换为 JSON 格式以便进一步传输,比如通过 API 响应传递给前端,如果Prisma使用了
JSON.stringify()
来进行序列化那么就会遇到报错,因为 JavaScript 默认无法序列化BigInt
类型。 - 所以根据各位大佬所给的代码的确解决了这个问题,通过给
BigInt
类型添加自定义的toJSON
方法,可以确保每个BigInt
类型的数据在序列化时转化为字符串,这样JSON.stringify()
在遇到BigInt
类型时就能正确工作,而不会抛出错误。
ts
declare global {
interface BigInt {
toJSON() string;
}
}
BigInt.prototype.toJSON = function () {
return this.toString();
};
- 由于我使用的是Nuxt3,我将上述代码添加到lib目录下的prisma.ts中就解决了这个问题。
参考链接:
登录后可查看并参与评论
Gitee 登录
目录导航
暂无目录
友情链接
暂无链接