怎么利用 prisma 来同步前后端的结构呢?后端数据库表如果增加了一个字段,前端 ts 定义的 type 只能手动加字段吗

2023-05-14 18:53:56 +08:00
 fyxtc
如果用 prisma 导出的 model ,那么 id 是 required 的,而且不能导出嵌套的 model ,不可能 create 协议的时候前端去赋值 id 啊。还是得自己手动创建一个 type ,那后端每次有变化前端 type 都得改吗,怎么利用 prisma 来同步前后端的结构呢
1911 次点击
所在节点    程序员
11 条回复
zhengjian
2023-05-14 19:38:42 +08:00
import { User } from '@prisma/client';

export type CreateUserDto = Omit<User, 'id'>;
hua123s
2023-05-14 20:19:41 +08:00
wunonglin
2023-05-14 20:20:25 +08:00
不要使用数据库字段定义 API 接口的 Input 、Output 。这是个 bad case
hua123s
2023-05-14 20:25:43 +08:00
@hua123s 有很多这种库,比如 swagger-typescript-api
mingoing428
2023-05-15 08:25:09 +08:00
还得放到同一个仓库,很麻烦
evilStart
2023-05-15 11:39:26 +08:00
数据库字段变了能直接影响到 API 和前端的字段,这本身就很离谱。培训班教的?
uni
2023-05-15 14:38:57 +08:00
@evilStart 哈哈哈,若依管理系统中枪(
fyxtc
2023-05-15 18:10:40 +08:00
@evilStart 你没理解我的意思,数据库新加了字段,api 需要返回新字段给前端用,前端是 ts ,你告诉我该怎么取,如果你是直接 js 点出来当我没说,还有我本来就是来提问请教的但是我觉得你挺不礼貌的
fyxtc
2023-05-15 18:17:28 +08:00
@hua123s 太感谢兄弟了,只有你是真的理解我的意思并且真心来帮我的,帮大忙了
justsosososo
2023-05-16 13:56:46 +08:00
prisma generate 后会生成很多定义好的类型 可以直接用。。
https://www.prisma.io/docs/concepts/components/prisma-client/advanced-type-safety#importing-generated-types
fyxtc
2023-05-17 20:34:19 +08:00
@justsosososo 太好了!我就想找这个,非常感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/939924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX