【发布时间】:2016-03-08 07:36:51
【问题描述】:
如果这不是一种常见的做法,请随时告诉我 - 我是一个相当新的程序员 - 但我想我过去曾见过 API,当您向资源提交 DELETE 请求时 (/ todo/1234),某些服务器将在响应中返回您刚刚删除的对象。那是一回事吗?如果是这样,我有兴趣学习如何做到这一点。这是我所拥有的:
.delete(function (req, res) {
Todo.findById(req.params.todoId).remove(function (err) {
if (err) res.status(500).send(err);
res.send("Todo item successfully deleted");
});
});
此代码确实删除了该项目,但我想返回在响应中删除的项目而不是字符串消息。如果这是正常/可以做的事情。如果由于某种原因不正常或正常,请告诉我原因,我会继续前进。或者也许有更常见的方法。
这是我在 [RFC 7231 文档][1] 中找到的:
如果成功应用了 DELETE 方法,源服务器应该 如果操作可能成功,则发送 202(已接受)状态代码 但尚未制定,204(无内容)状态代码,如果 已采取行动,无需提供进一步的信息, 或 200 (OK) 状态码(如果已执行该操作且 响应消息包括描述状态的表示。
我很难解释 200 响应的含义 - 发送字符串消息 (Success!) 还是包含消息属性 ({message: "Success!"}) 的对象是否符合规定?或者你可以在那里做任何你想做的事吗? Express 中使用 Mongoose 的最佳做法是什么?
在此先感谢您的帮助,并为我对 HTTP 的内容感到抱歉。 [1]:https://www.rfc-editor.org/rfc/rfc7231#section-4.3.5
【问题讨论】:
标签: node.js mongodb http express mongoose