记录一次vue 和 prisma的问题排查

在Vue前端与Prisma ORM结合的项目中,遇到数据库BigInt报错和Decimal类型数据被序列化为字符串的问题。BigInt错误通过重写toJSON()函数解决,而Decimal类型的值在Prisma从MySQL获取后默认序列化为字符串,需通过toNumber()转换。解决方案是在Express序列化之前替换Prisma内建类型的toJSON()方法,确保数据正确传递。
摘要由CSDN通过智能技术生成

项目背景: 前端使用vue 后端使用node
其中后端服务器框架用express orm框架使用prisma 数据库是mysql
前后端使用json传输数据

问题:

  1. 数据库BigInt报错TypeError: Do not know how to serialize a BigInt
    查了一下发现根本就不是问题 是一个历史遗留问题,然后chrome的程序员开玩笑就不给解析,但是实际上一行代码就解决问题了

    解决方案: 在用到BigInt的serialize之前 给BigInt换上新的toJSON()函数

    // 因为这里项目用的是express 所以就是在根目录项目启动文件app.js 中添加这行代码
    BigInt.prototype.toJSON = function() {
          return this.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值