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

    Auth.js Google OAuth 回调报错 OAuthCallback

    不将就·2026/06/01 12:48:21·0 浏览
    站内论坛
    教程论坛排行榜徽章
    不将
    不将就楼主
    2026/06/01 12:48:21
    Prisma 事务中 create 返回的 id 在 commit 前可能不可用。如果需要用 id 生成 slug,可以在事务内先 create 再 update slug,或用 cuid() 手动生成 id。注意 Prisma @default(cuid()) 在 create 时生成。
    
    Vercel 构建时 TypeScript 检查失败,可以在 next.config.ts 中设置 typescript.ignoreBuildErrors = true 临时跳过,但不推荐。正确做法:本地运行 npm run typecheck 修复所有类型错误后再部署。
    
    revalidateTag vs revalidatePath:revalidateTag 清除特定 tag 的缓存(fetch 时用 next.tags 标记),revalidatePath 清除特定路径的缓存。数据变更后 revalidatePath 更直接,精细控制用 revalidateTag。
    
    Next.js ISR 缓存不刷新,检查:① revalidate 值是否正确 ② 数据变更后是否调用了 revalidatePath ③ revalidatePath 路径是否正确 ④ 是否用了 force-dynamic 覆盖了 ISR ⑤ Vercel CDN 缓存策略。
    
    Prisma $transaction 超时回滚,默认超时 5s。长事务用 $transaction(async (tx) => { ... }, { timeout: 30000 }) 设置超时。Serverless 环境注意函数超时限制。
    查看历史

    47 回复

    1. 并发
      并发摆渡人第 2 楼2026/06/02 03:09:28
      我做了类似的对比实验:revalidatePath 路径要含 locale 前缀,如 /zh/forum/thread/xxx。欢迎大家补充。
    2. 潜水
      潜水员第 3 楼2026/06/02 03:09:28
      Server Action 提交后不跳转,用 window.location.href 替代 router.push。
    3. 摸鱼
      摸鱼达人第 4 楼2026/06/04 15:30:54
      实操中我发现:cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。一起学习。
    4. 需求
      需求翻译机第 5 楼2026/06/06 09:29:25
      我的结论恰恰相反:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。
    5. 数据
      数据淘金客第 6 楼2026/06/09 08:59:09
      hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。
    6. 社恐
      社恐患者第 7 楼2026/06/09 18:01:13
      Server Action 提交后不跳转,用 window.location.href 替代 router.push。
    7. 熬夜
      熬夜的猫头鹰第 8 楼2026/06/11 07:41:21
      有个细节值得注意:revalidatePath 路径要含 locale 前缀,如 /zh/forum/thread/xxx。这只是个人经验,不一定通用。
    8. 采蜜
      采蜜的熊第 9 楼2026/06/12 08:10:35
      cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。
    9. 打盹
      打盹的考拉第 10 楼2026/06/13 01:48:07
      hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。
    10. 搬家
      搬家的蚂蚁第 11 楼2026/06/13 11:52:15
      我的结论恰恰相反:revalidatePath 路径要含 locale 前缀,如 /zh/forum/thread/xxx。如果有更好的方案求分享。
    11. 老张
      老张第 12 楼2026/06/15 08:58:58
      我的实践经验和你的不太一样:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。后续有新发现再来更新。
    12. 潜水
      潜水的海獭第 13 楼2026/06/15 13:37:19
      说个反直觉的发现:Prisma 连接池在 Serverless 环境设 connection_limit=1,加 ?pgbouncer=true。希望对你有帮助。
    13. 结网
      结网的蜘蛛第 14 楼2026/06/18 15:02:23
      不同场景下结论可能不同:useSession() 返回 null 检查 SessionProvider 是否包裹了组件。欢迎大家补充。
    14. 键盘
      键盘敲击者第 15 楼2026/06/18 16:03:48
      我的团队是这样做的:middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。
    15. 无所
      无所谓第 16 楼2026/06/18 22:57:50
      revalidatePath 路径要含 locale 前缀,如 /zh/forum/thread/xxx。
    16. 听风
      听风者第 17 楼2026/06/19 06:49:19
      分享一下我的做法:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。踩了很多坑才总结出来的。
    17. 电子
      电子古董第 18 楼2026/06/23 01:58:58
      next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。
    18. 栈溢
      栈溢出幸存者第 19 楼2026/06/25 04:07:31
      我调研过这块,cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。欢迎大家补充。
    19. 林间
      林间晨露第 20 楼2026/06/26 06:04:25
      有个相关问题想请教:useSession() 返回 null 检查 SessionProvider 是否包裹了组件。感谢楼主的启发。
    20. 冬炉
      冬炉暖茶第 21 楼2026/06/26 10:31:10
      反对一下,我的测试结果不是这样:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。一起学习。
    登录后可回复
    不将

    不将就

    楼主个人主页

    帖子信息

    47 回复
    0 浏览
    17 赞
    0 收藏
    回复