其他服务端事项
2026年9月6日
来源教程「其他」一页当时没有正文。下面记几件 Route Handler / Server Action 之外、上线前后几乎总会碰到的事。
文件上传
浏览器 FormData 打到 Route Handler,request.formData() 取 File。小文件可以写磁盘或转 Buffer;生产丢 S3 / R2 / 又拍云,Next 进程里不存原图。注意 bodySizeLimit(next.config 的 experimental.serverActions.bodySizeLimit 或托管平台的限制)。
邮件和短信
注册验证、找回密码走 Resend、SES、阿里云邮件一类。Key 只留服务器。别在 Server Action 里同步干等 SMTP,超时把请求拖死;能丢队列就丢。
限流
公开 /api 没有限流会被刷。Proxy 或 Hono 中间件按 IP / 用户计数;简单场景内存 Map 够玩,多实例要用 Redis。登录、发信接口优先做。
日志和错误
console.log 在 Vercel 能看,但检索弱。接 OpenTelemetry、Sentry、或平台自带日志。Server Component 的报错会出现在终端,客户端边界用 error.tsx。别把堆栈和 SQL 回给浏览器。
后台任务
next build 的进程不适合当 cron 常驻。可选:
- 托管平台的 Cron(Vercel Cron 打你的 Route Handler)
- 外置 Worker(Cloudflare Queue、BullMQ + Redis)
- 数据库
pg_cron一类(要自己运维)
Handler 要验密钥,防止谁都能触发结算任务。
什么时候该拆服务
Next 能写全栈,不代表所有 IO 都该塞进同一个仓库:长视频转码、大规模爬虫、WebSocket 房间,放到专门进程更稳。Hono 也可以独立部署,Next 只当 BFF。
下一篇:把应用发到 Vercel。