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

Express中res.send(200)与res.status(200).send('OK')、res.sendStatus(200)是否等效?

Express webhook 状态码返回问题解答

废弃原因说明

Express v4及以上版本中,res.send()直接传入数字的用法已被标记为废弃,v5版本会彻底移除该能力,因此必须改用规范写法设置状态码。

几种写法的效果对比

  • 旧废弃写法res.send(200):底层逻辑是将数字识别为状态码,返回HTTP 200状态,响应体为标准状态文本OK,自动结束响应
  • res.sendStatus(200):Express官方推出的替代写法,和废弃写法效果完全一致:自动设置200状态码,响应体为标准OK文本,自动结束响应
  • res.status(200).send('OK'):效果和上述两种写法完全等价,属于更灵活的显式写法,你可以自定义send()中的响应体内容,适合需要返回特定响应体的场景

常见误区澄清

仅使用res.status(200)是不可行的:该方法仅设置响应的状态码属性,不会触发响应发送,会导致请求一直挂起直到超时,必须搭配send()/end()等结束响应的方法使用。

推荐替代方案

优先选择 res.sendStatus(200)

这是最贴合原res.send(200)设计意图的写法,代码简洁,符合Express规范,绝大多数webhook场景下直接使用即可,webhook服务端只会校验状态码是否为200,不会校验响应体内容。

特殊场景选择

  • 如果要求返回空响应体:使用res.status(200).end(),不会返回任何响应内容
  • 如果要求返回自定义响应内容(比如特定JSON、字符串):使用res.status(200).send(自定义内容),比如res.status(200).json({code:0})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:24:02