猫鼬在删除时不返回HTTP状态码204



我使用mongoose作为mongodb,并试图删除一条记录。一个标准的REST API应该在删除时返回一个204响应。但是猫鼬正在返回200

return await ppc.deleteOne({ _id: id });

响应为deletedCount

data:
deletedCount: 1
status: 200

return await ppc.findOneAndRemove({ _id: id});

返回与body相同的200。是否有任何默认返回204deleteAPI ?

spring bootspring data rest一样,对于成功的删除请求,默认返回204。我明白如果我需要响应体,我需要发送200以获得适当的REST API约定。但是,如果我需要用mongoose, mongo db返回204自己,我需要先检查deletedCount,我可以在后端或前端这样做,这是一个额外的工作。我想确保是否有一些设置或其他API将其默认为204?

200状态码的问题是mongoose甚至为不存在的ID返回200

你应该把Mongodb作为数据库的功能与你的应用程序返回的HTTP响应代码分开,两者之间没有关系。

200是默认的"success"响应代码,因为它返回,因为你的应用程序成功地执行代码,没有错误。mongoosemongodb不是返回状态的。

听起来你想要做的是在你的路由中加入一些基本的逻辑,就像这样:

const delResult = await ppc.deleteOne({ _id: id });
response.json({statusCode: 402, ...delResult})

使用mongoose,你还可以预构建触发器,在某些操作之后执行,为你处理这种类型的自定义逻辑,这就是你如何避免整个应用程序中的代码重复。

相关内容

  • 没有找到相关文章

最新更新