该校验逻辑通常应用于哪些场景?是否仅用于Put和Delete方法?
代码校验逻辑解析
代码片段
if (result.affectedRows === 0) { return res.status(404).json({ message: "Record not found." }); }
1. 校验逻辑的常见应用场景
- 更新类操作(PUT/PATCH):执行数据更新语句后,若
affectedRows为0,说明要修改的目标记录不存在,返回404告知客户端操作无效。 - 删除类操作(DELETE):删除操作完成后,没有任何记录被删除,意味着目标记录原本就不存在,用404提示客户端。
- 状态变更类操作:比如标记订单为已完成、禁用用户账号这类业务操作,若操作后无行受影响,说明目标记录不存在,返回404。
- 批量操作校验:批量更新或删除符合特定条件的记录时,若没有匹配到任何记录,也可通过这个逻辑返回404,告知客户端没有可操作的对象。
2. 是否仅用于Put和Delete请求方法?
不是,除了PUT和DELETE,这个逻辑还适用于其他需要确认目标记录存在并完成操作的请求:
- PATCH请求:和PUT类似,做部分字段更新时,若目标记录不存在,更新后
affectedRows为0,同样需要返回404。 - 特定业务的POST请求:比如POST接口用于执行"确认退款"这类操作(而非创建新资源),若目标订单不存在,操作后无行受影响,也会触发这个校验返回404。
- 自定义业务接口:比如重置用户密码、绑定手机号这类接口,若目标用户不存在,执行相关数据库操作后
affectedRows为0,也会用这个逻辑返回404提示。
内容的提问来源于stack exchange,提问作者Fryback
相关产品推荐
相关产品推荐

