这是我的代码:
.put(function(req, res) {
User.findById(req.params.user_id, function(err, user) {
if(err) return res.send(err);
user.dateEdited = new Date();
user.save(function(err) {
if(err) return res.send(err);
return res.status(204).json(customHTTPcodeReponses.updated(user))
});
});
});
Run Code Online (Sandbox Code Playgroud)
我的中间件的一部分称为 customHTTPcodeReponses
updated: function(data) {
return {
code: 204,
status: 'Success',
message: 'Resource updated (or soft deleted)',
data: data
};
}
Run Code Online (Sandbox Code Playgroud)
我想通了, 204 不应该返回任何数据,所以我没有得到任何回报。但我想拥有这些数据,看看真正改变了什么。那我怎么能处理响应代码呢?
请记住,如果我使用
res.status(200).json(customHTTPcodeReponses.updated(user))
Run Code Online (Sandbox Code Playgroud)
数据显示。
如果您需要一些额外的解释,请询问。
是的,你是对的。此 http 状态不允许消息,因为它意味着“无内容”。如果您发送内容,请使用其他状态。有关详细信息,请参阅文档:http : //www.w3.org/Protocols/rfc2616/rfc2616-sec10.html。有部分内容:“204 响应不得包含消息正文,因此始终以头字段后的第一个空行终止。”
如果您想发送的不是内容而是带有成瘾信息的元数据,在本文档中有一部分:“响应可以包含实体头形式的新的或更新的元信息,如果存在,应该与请求的变体相关联。”。我认为这是对您问题的正式回答。
如果您不那么正式,请使用状态“200”和元数据作为内容。
编辑:在标题中发送数据:
res.header(field, [value])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11301 次 |
| 最近记录: |