У меня есть функция Google Cloud, основанная на node.js 8, и я хочу обработать тело объекта IncomingMessage
. Я не могу получить доступ к телу через req.body
, как указано в Google Примеры . Я получаю req.body
не определено.
Если я регистрирую объект req
, я получаю объект IncomingMessage
, поэтому я пытаюсь прочитать тело, как объяснено здесь , и в итоге получаю следующую реализацию.
'use strict';
exports.insertSuccessfulConsent = (req, res) => {
console.log(`METHOD: ${req.method}`);
console.log(`HEADERS: ${JSON.stringify(req.headers)}`);
let body = "";
req.on('data', chunk => {
body += chunk.toString();
});
req.on('end', () => {
console.log(body);
});
console.log('Body: ' + body);
let message = 'POST processed';
res.status(200).send(message);
};
К сожалению, тело пусто, хотя запрос HTTP POST содержит данные в теле. Это мой тестовый вызов:
curl -X POST HTTP_TRIGGER_ENDPOINT -H "Content-Type:application/json" -d '{"name":"Jane"}'
В журнале указаны правильные заголовки и методы HTTP, отсутствует только тело.
Вопрос в том, как мне получить тело от объекта req?