Next.js项目API本地正常,部署Vercel后出现500错误求助
排查Vercel部署后Hono+Neon+Next.js的500内部服务器错误
先确认Vercel环境变量是否生效
- 检查
DATABASE_URL(Neon连接字符串)是否正确添加到Vercel的生产环境变量中,注意不要带多余空格,且修改环境变量后必须重新部署项目才会生效。 - 核对
NEXT_PUBLIC_APP_URL的格式,确保没有开头/结尾的空格或多余斜杠,正确格式应为NEXT_PUBLIC_APP_URL=https://expense-mate-amber.vercel.app。
- 检查
查看Vercel函数日志定位具体错误
进入Vercel控制台的项目「Logs」或「Functions」页面,查看API请求的详细错误栈。500错误必然有具体触发原因,比如数据库连接失败、未捕获的代码异常、路由匹配错误等,日志是最快定位问题的方式。给Hono添加全局错误捕获
在Hono实例中添加错误处理中间件,强制输出具体错误信息(生产环境默认会隐藏),方便排查:app.onError((err, c) => { console.error('Hono Error:', err); return c.json({ error: err.message }, 500); });重新部署后,调用API就能看到具体的错误内容。
验证Neon生产数据库的可访问性
用本地终端执行psql <你的生产DATABASE_URL>,测试能否正常连接数据库。如果连接失败,检查Neon控制台的数据库权限、连接字符串格式(比如是否需要添加?sslmode=require参数),或者是否开启了IP白名单限制(Neon默认允许所有IP,但如果手动设置过白名单,需把Vercel的IP加入)。检查Hono路由的部署适配
确认Next.js的API路由文件(比如app/api/[...hono]/route.ts)导出是否正确,生产环境下的路由前缀是否和本地一致,避免因路径匹配失败导致的错误。
内容的提问来源于stack exchange,提问作者Haider Nasir
相关产品推荐
相关产品推荐

