V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fyxtc
V2EX  ›  程序员

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

  •  
  •   fyxtc · 2023-05-14 18:53:56 +08:00 · 1912 次点击
    这是一个创建于 591 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果用 prisma 导出的 model ,那么 id 是 required 的,而且不能导出嵌套的 model ,不可能 create 协议的时候前端去赋值 id 啊。还是得自己手动创建一个 type ,那后端每次有变化前端 type 都得改吗,怎么利用 prisma 来同步前后端的结构呢
    zhengjian
        1
    zhengjian  
       2023-05-14 19:38:42 +08:00   ❤️ 1
    import { User } from '@prisma/client';

    export type CreateUserDto = Omit<User, 'id'>;
    hua123s
        2
    hua123s  
       2023-05-14 20:19:41 +08:00 via iPhone   ❤️ 1
    wunonglin
        3
    wunonglin  
       2023-05-14 20:20:25 +08:00
    不要使用数据库字段定义 API 接口的 Input 、Output 。这是个 bad case
    hua123s
        4
    hua123s  
       2023-05-14 20:25:43 +08:00 via iPhone   ❤️ 1
    @hua123s 有很多这种库,比如 swagger-typescript-api
    mingoing428
        5
    mingoing428  
       2023-05-15 08:25:09 +08:00 via Android
    还得放到同一个仓库,很麻烦
    evilStart
        6
    evilStart  
       2023-05-15 11:39:26 +08:00 via Android
    数据库字段变了能直接影响到 API 和前端的字段,这本身就很离谱。培训班教的?
    uni
        7
    uni  
       2023-05-15 14:38:57 +08:00
    @evilStart 哈哈哈,若依管理系统中枪(
    fyxtc
        8
    fyxtc  
    OP
       2023-05-15 18:10:40 +08:00
    @evilStart 你没理解我的意思,数据库新加了字段,api 需要返回新字段给前端用,前端是 ts ,你告诉我该怎么取,如果你是直接 js 点出来当我没说,还有我本来就是来提问请教的但是我觉得你挺不礼貌的
    fyxtc
        9
    fyxtc  
    OP
       2023-05-15 18:17:28 +08:00
    @hua123s 太感谢兄弟了,只有你是真的理解我的意思并且真心来帮我的,帮大忙了
    justsosososo
        10
    justsosososo  
       2023-05-16 13:56:46 +08:00   ❤️ 1
    prisma generate 后会生成很多定义好的类型 可以直接用。。
    https://www.prisma.io/docs/concepts/components/prisma-client/advanced-type-safety#importing-generated-types
    fyxtc
        11
    fyxtc  
    OP
       2023-05-17 20:34:19 +08:00
    @justsosososo 太好了!我就想找这个,非常感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3896 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 05:11 · PVG 13:11 · LAX 21:11 · JFK 00:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.