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

res.status()与res.json()抛出错误的场景及查询方法

res.status() 和 res.json() 可能抛出的错误及查询方式

一、可能抛出的错误

res.status()

  • 当响应已经完成(res.finished 为 true)时调用,会抛出错误——此时响应流程已结束,无法再修改状态码
  • 传入的状态码不符合HTTP规范(非100-599之间的整数),会抛出 TypeError 或 RangeError

res.json()

  • 响应已结束(res.finished 为 true)或响应头已发送(res.headersSent 为 true)时调用,会抛出错误——此时无法再向客户端发送响应体
  • 要序列化的对象存在循环引用,会触发 JSON.stringify() 的 TypeError,进而导致 res.json() 抛出错误
  • 底层响应流出现IO异常(比如客户端提前断开连接),也可能抛出相关错误

二、除查看源码外的查询方式

  • 官方API文档:Express的官方文档会明确标注每个方法的参数要求、调用限制及可能的异常场景,直接对应方法条目就能找到相关说明
  • TypeScript类型定义:安装 @types/express 后,查看Response接口的方法定义,能直观看到参数的类型约束,比如status()要求传入合法的HTTP状态码数字,类型检查时就能提前发现非法参数问题
  • 本地模拟测试:手动构造异常场景(比如在headersSent为true后调用方法、传入循环引用对象、传入非法状态码),通过try-catch捕获错误,查看具体的错误类型和信息
  • 社区问题汇总:参考Stack Overflow等平台上的相关讨论,很多开发者会分享实际遇到的错误场景和解决经验,能快速定位常见问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:38:19