Вернуть ответ с кодом статуса в Экспресс - PullRequest
0 голосов
/ 23 мая 2018

В моем бэкэнде 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 голосов
/ 23 мая 2018

Вы отправляете ответ вне функции 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);
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...