如何为Next.js中TRPC Serverless函数设置超时?Vercel部署遇匹配错误
解决Vercel中TRPC Serverless函数超时配置的路径问题
你遇到的问题核心是:TRPC在Next.js里并非每个Router对应独立的Serverless函数,所有TRPC请求都会通过统一的动态API路由入口处理。控制台显示的/api/trpc/dailyTrends.getDailyTrends只是TRPC内部的路由路径,不是Vercel识别的函数文件路径,所以你之前指定的文件匹配不上。
正确配置方式
根据你的Next.js路由类型选择对应配置:
1. Pages Router 项目(传统pages目录结构)
TRPC的API入口文件为pages/api/trpc/[trpc].ts,vercel.json需指向该文件:
{ "functions": { "pages/api/trpc/[trpc].ts": { "maxDuration": 1 } } }
2. App Router 项目(Next.js 13+,app目录结构)
若使用App Router,TRPC的API入口是app/api/trpc/[trpc]/route.ts,配置如下:
{ "functions": { "app/api/trpc/[trpc]/route.ts": { "maxDuration": 1 } } }
补充说明
TRPC通过单个动态路由文件分发所有请求到对应的Router方法,Vercel仅将这个入口文件识别为Serverless函数。你之前写的api/trpc/routers/dailyTrends.ts只是TRPC的业务逻辑文件,不属于Vercel部署的Serverless函数入口,因此无法匹配。
内容的提问来源于stack exchange,提问作者Javed Ahamed
相关产品推荐
相关产品推荐

