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

Nextjs出现res.status.json() is not a function报错如何解决

错误根因

Next.js API路由的响应对象方法调用规则和你写的逻辑不匹配:res.status本身是一个需要传入HTTP状态码作为参数的函数,你没有加括号传参调用它,直接访问status函数上的json属性,这个属性根本不存在,值为undefined,当成函数调用自然会抛出is not a function的错误。

排查流程
  • 第一步根据报错栈定位出错行:错误就出在res.status.json(...)这一行
  • 核对Next.js API路由的响应方法规则:
    • 直接返回JSON响应且默认用200成功状态码时,直接调用res.json(待返回数据)即可
    • 需要自定义HTTP状态码时,要先调用res.status(具体状态码),这个方法执行完会返回响应对象实例,才能链式调用.json(待返回数据)
  • 对比现有代码:res.status没有加调用括号、没有传入必填的状态码参数,本质是在访问函数对象的不存在的属性,完全不符合调用规范
修复方案

两种写法都可正常运行,按需选择即可:

  1. 不需要自定义状态码,直接返回默认200响应:
export default function handler(req, res) {
  res.json([234400, 721302, 110003, 560017]);
}
  1. 需要显式指定状态码(比如明确标注200成功、后续扩展场景返回4xx/5xx错误码):
export default function handler(req, res) {
  res.status(200).json([234400, 721302, 110003, 560017]);
}

避坑提示:所有链式调用的场景都要确认前一个方法执行后返回对应实例,不要漏写调用括号和必填参数。

内容的提问来源于stack exchange,提问作者front_dev_j

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 12:06:19