这是我的代码:
.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))
});
});
});
我的部分中间件称为customHTTPcodeReponses
updated: function(data) {
return {
code: 204,
status: 'Success',
message: 'Resource updated (or soft deleted)',
data: data
};
}
我想通了,204不应该返回任何数据,所以我没有得到任何回复。 但是我希望有这些数据来看看真正改变了什么。那我怎么能处理响应代码?
请记住,如果我使用
res.status(200).json(customHTTPcodeReponses.updated(user))
显示数据。
如果您需要一些额外的解释,请询问。
答案 0 :(得分:4)
如果你想发送的不是内容,而是发送含有成瘾信息的元数据,在本文档中有部分:"响应可能包含实体标题形式的新的或更新的元信息,如果存在,应该与...相关联要求的变体。"。我认为这是你问题的正式答案。
如果你不那么正式,请使用状态' 200'将元数据作为内容。
编辑: 在标题中发送数据:
res.header(field, [value])
答案 1 :(得分:1)
很简单。如果您需要一些数据,只需使用返回码200并返回该数据。如果您不需要发回任何数据,请使用204.您可以设置标题为204以指示操作状态或URL设置为位置,返回码为201,但我不确定这是一个好主意。
答案 2 :(得分:0)
是,如果您必须使用200发送响应消息,或者也可以使用404 由于204,在正文中不返回任何消息