快速

时间:2018-05-23 16:00:29

标签: node.js express post

在我的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 个答案:

答案 0 :(得分:1)

您正在await函数之外发送回复...您需要将res.send置于等待函数

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);
 }
}