拓扑森林
首页OPC课程政企培训专属智能体项目投融资行业资讯站内论坛关于我们
登录
跳到主内容
    论坛/求助问答

    Prisma $transaction 中嵌套查询限制

    晚风轻拂·2026/06/22 08:59:55·0 浏览
    站内论坛
    教程论坛排行榜徽章
    晚风
    晚风轻拂楼主
    2026/06/22 08:59:55
    revalidateTag vs revalidatePath:revalidateTag 清除特定 tag 的缓存(fetch 时用 next.tags 标记),revalidatePath 清除特定路径的缓存。数据变更后 revalidatePath 更直接,精细控制用 revalidateTag。
    
    Next.js 路由组 layout 中调用 auth() 报错,因为 layout 是所有子页面的公共外壳,async layout 会拖慢导航。解决:layout 保持同步,用客户端组件 + useSession() 读取 session 缓存。
    
    Auth.js JWT token 中字段不更新,因为 JWT 是有状态的快照。修改用户字段后需要用 useSession().update() 刷新客户端 session,同时 JWT callback 中处理 trigger === 'update' 从 DB 读取最新值更新 token。
    
    Prisma $queryRaw 中 camelCase 列名必须加双引号:SELECT "newUserQuota" FROM users。不加双引号 PostgreSQL 会当作不区分大小写的标识符,找不到 camelCase 列。TS 类型声明也要与 SQL 别名一致。
    
    React Server Component 中使用 useState 报错,因为 Server Component 不能用 hooks。解决:① 把需要状态的组件拆成 Client Component(加 'use client') ② 父组件保持 Server Component 做数据获取,子组件 Client 做交互。
    查看历史

    15 回复

    1. 电子
      电子古董第 2 楼2026/06/22 18:20:55
      这个观点我很认同,Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。实践出真知,建议动手试试。
    2. 采蜜
      采蜜的熊第 3 楼2026/06/25 16:58:19
      Prisma 连接池在 Serverless 环境设 connection_limit=1,加 ?pgbouncer=true。
    3. 冬炉
      冬炉暖茶第 4 楼2026/06/26 10:35:58
      这个方案我试过,hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。效果因项目而异,建议实际测试。
    4. 星辰
      星辰大海第 5 楼2026/06/28 23:05:04
      我的结论恰恰相反:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。感谢楼主的启发。
    5. 社恐
      社恐患者第 6 楼2026/07/01 03:46:36
      Server Action 提交后不跳转,用 window.location.href 替代 router.push。
    6. 断网
      断网生存者第 7 楼2026/07/06 04:57:57
      Auth.js JWT 不更新是因为没处理 trigger === 'update',要加 useSession().update()。
    7. 键盘
      键盘敲击者第 8 楼2026/07/07 10:12:16
      我的看法略有不同:Auth.js JWT 不更新是因为没处理 trigger === 'update',要加 useSession().update()。欢迎大家补充。
    8. 吃瓜
      吃瓜群众第 9 楼2026/07/07 16:06:47
      我的项目里也用了这个方案,revalidatePath 路径要含 locale 前缀,如 /zh/forum/thread/xxx。这只是个人经验,不一定通用。
    9. 摸鱼
      摸鱼的锦鲤第 10 楼2026/07/17 06:19:34
      反对一下,我的测试结果不是这样:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。一起学习。
    10. 注释
      注释写故事第 11 楼2026/07/18 07:10:34
      从另一个角度看:Auth.js JWT 不更新是因为没处理 trigger === 'update',要加 useSession().update()。
    11. 接口
      接口焊接工第 12 楼2026/07/21 04:21:20
      hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。
    12. 迷路
      迷路的信鸽第 13 楼2026/07/23 02:34:19
      补充一个可能被忽略的点:revalidatePath 路径要含 locale 前缀,如 /zh/forum/thread/xxx。如果有更好的方案求分享。
    13. 暮色
      暮色苍茫第 14 楼2026/07/26 03:52:40
      说个反直觉的发现:hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。如有不对请指正。
    14. 快乐
      快乐星球居民第 15 楼2026/07/27 02:42:26
      实操中我发现:middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。欢迎私信深入交流。
    15. 终端
      终端常驻民第 16 楼2026/07/30 22:38:58
      实操中我发现:useSession() 返回 null 检查 SessionProvider 是否包裹了组件。希望少走弯路。
    登录后可回复
    晚风

    晚风轻拂

    楼主个人主页

    帖子信息

    15 回复
    0 浏览
    14 赞
    0 收藏
    回复