我使用的是Prisma2 (prisma @prisma/client)。
在我的底层postgres db中,我有一个类型为date的列,即只有日期而没有时间。
Prisma为此列返回一个Javascript Date对象(https://www.prisma.io/docs/concepts/components/preview-features/native-types/native-types-mappings#datetime),该对象也携带时间信息。
序列化之后,我得到了一个完整的ISO日期和时间字符串。但是,我只想返回日期部分(时间部分始终是00:00:00)。
目前我这样做了:
return await prisma.entity.findMany().map(e => ({ ...e, date: e.date.toISOString().substring(0,10) }))我想摆脱手动映射,因为我必须为每个查询重复它,并且对于嵌套查询,映射变得更加复杂。
Prisma是否支持添加到模型(并自动执行)的某种类型的转换(例如,使用类转换器)?我在文件里什么也没找到。或者,我可以教Prisma将该列作为字符串而不是Date对象返回吗?
发布于 2021-02-09 14:12:53
Prisma客户端正在返回JavaScript Date objects by design,遗憾的是,这无法在Prisma客户端API中进行配置。
作为一种变通办法,您可以考虑编写一个middleware函数来自动将Date对象转换为字符串,这样您就不需要在每次使用Date时都在应用程序中手动执行此操作。
如果你想看到Prisma原生支持这一点,请随时与你的用例一起使用open a feature request,这样我们的团队就可以研究这一点。
https://stackoverflow.com/questions/66109340
复制相似问题