Prisma+Next.js生产环境内容不实时更新问题求助
生产环境Next.js + Prisma应用数据无法实时同步问题
我在Vercel上部署了基于Prisma和Next.js的Web应用,开发环境中创建或更新数据库数据后内容可实时展示,但生产环境需手动重新部署才会同步更新(已排除缓存问题)。已确认POST请求可正常修改数据库,页面刷新后数据仍为静态内容,推测问题出在GET请求环节。
相关代码
前端数据获取代码
const { data: posts, error } = useSWR(`/api/getPosts`, fetcher, {refreshInterval:1000});
添加内容的API端点(POST)
// Addposts to prisma backend import { NextResponse, NextRequest } from 'next/server'; import prisma from '../../../prisma/client'; export async function POST(request:NextRequest) { const data = await request.json(); const title = data.title; const user = await prisma.user.findUnique({ where: { email : data.email } }) if (!user){ return NextResponse.json({error: "User not found"}, {status: 404}) } if (!title){ return NextResponse.json({error: "Title is required"}, {status: 400}) } if (title.length > 300){ return NextResponse.json({error:"Title should not be more than 300 characters"}, {status:400}); } const userId = user?.id; const post = await prisma.post.create({ data: { title, userId } }) try{ return NextResponse.json({post},{status:200}) }catch(error){ return NextResponse.json({error}, {status:500}) } }
获取内容的API端点(GET)
import { NextRequest, NextResponse } from 'next/server' import prisma from '../../../prisma/client' import { NextApiResponse } from 'next'; export async function GET(request:NextRequest){ const posts = await prisma.Post.findMany({ include: { user: true }, orderBy:{ createdAt: 'desc' } }) try{ return NextResponse.json({posts},{status:200}) }catch(error){ return NextResponse.json(error, {status:500}); } }
排查信息
- 已确认POST请求可正常修改数据库
- 页面刷新后数据仍为静态内容
- Vercel运行日志截图:

请求帮助
如何实现生产环境内容修改后无需手动部署即可实时展示?
内容的提问来源于stack exchange,提问作者Sadeed_pv
相关产品推荐
相关产品推荐

