You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js API路由本地正常但部署到SST服务器后无内容返回问题排查

Next.js 13.4.19 API路由在SST部署后返回空响应的解决方法

针对本地API正常、SST部署后返回空响应(状态码200)的问题,可按以下步骤排查修复:

1. 确认SST与Next.js的构建模式配置

Next.js 13的Pages Router在standalone输出模式下,需要SST明确配置才能正确打包API路由的依赖:

  • 在next.config.js中添加:
    module.exports = {
      output: "standalone",
      // 其他原有配置...
    };
    
  • 同时在SST的栈配置文件(如stacks/MyStack.ts)中,确保NextjsSite组件指定对应输出模式:
    import { NextjsSite } from "@serverless-stack/resources";
    
    new NextjsSite(stack, "Site", {
      path: "src", // 你的Next.js项目根路径
      nextjs: {
        output: "standalone",
      },
    });
    

修改后重新部署验证。

2. 检查API路由的类型导入完整性

确保test.ts中正确导入Next.js的API类型,缺失导入可能导致编译后的代码在Serverless环境中运行异常:

import type { NextApiRequest, NextApiResponse } from "next";

const testRoute = async(req: NextApiRequest, res: NextApiResponse) => {
  res.status(200).json({ message: "testing" });
};

export default testRoute;

3. 查看Lambda运行日志排查隐藏异常

SST部署的API路由以AWS Lambda形式运行,可通过AWS CloudWatch查看对应Lambda的日志,定位是否有运行时错误(如JSON序列化失败、依赖缺失):

  • 登录AWS控制台进入CloudWatch服务
  • 找到对应Lambda函数的日志组,查看最新执行日志

4. 显式结束响应

在Serverless环境中,有时需要显式调用res.end()确保响应被正确发送,修改API路由代码:

const testRoute = async(req: NextApiRequest, res: NextApiResponse) => {
  res.status(200).json({ message: "testing" });
  res.end();
};

5. 验证SST版本兼容性

确认使用的SST版本支持Next.js 13.4.19,建议升级到SST最新稳定版,避免版本不兼容导致的问题。

内容的提问来源于stack exchange,提问作者Wai Yan Hein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:00:11