在Express中返回带有状态码的响应

3
在我的MongoDB/Node后端中,我有一个非常标准的函数,可以通过POST请求将新语言添加到数据库中。它看起来像这样:
exports.add = async function(req, res) {
 let request, doc;
 request = new EndpointRequestController(req, res);

 try {
   doc = await request.save(Language, req.body);
 } catch(err) {
   return request.sendError('An error occurred while trying to find existing records.', err);
 }

 request.sendResponse(doc, res.status(201));
}

目前,这个功能是正常工作的——当用户在POST请求的正文中传递一个值时,新语言就会被添加到我们的语言集合中。

我想弄清楚的是,为什么它返回一个"204"响应,而不是我在响应中明确发送的"201"状态?我该如何编辑它以发送"201"响应?

1个回答

3

您正在await函数之外发送响应... 您需要将res.send放到await函数内部。

exports.add = async function(req, res) {
 let request, doc;
 request = new EndpointRequestController(req, res);

 try {
   doc = await request.save(Language, req.body);
   res.status(201).send(doc)
 } catch(err) {
   return request.sendError('An error occurred while trying to find existing records.', err);
 }
}

太好了。谢谢,@Ashish。 - Muirik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接