其他服务端事项

2026年9月6日

来源教程「其他」一页当时没有正文。下面记几件 Route Handler / Server Action 之外、上线前后几乎总会碰到的事。


文件上传

浏览器 FormData 打到 Route Handler,request.formData()File。小文件可以写磁盘或转 Buffer;生产丢 S3 / R2 / 又拍云,Next 进程里不存原图。注意 bodySizeLimitnext.configexperimental.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。


参考文档