Рубрики
Без рубрики

Как получить как проанализированное тело, так и необработанное тело в Express

Узнайте, как получить как проанализированное тело, так и необработанное тело в Express с помощью “body-parser”

В одном приложении, которое я создаю, у меня возникла такая проблема.

Используя Express, я могу импортировать анализатор тела для анализа тела в формате JSON:

import bodyParser from 'body-parser'
app.use(bodyParser.json())

Однако для интеграции с API платежей Stripe У меня была потребность обнажить необработанное тело (не проанализировано) в конечную точку, и я не мог понять, как это сделать, все еще анализируя тело как JSON.

Это сделало свое дело:

app.use(bodyParser.json({
  verify: (req, res, buf) => {
    req.rawBody = buf
  }
}))

Теперь необработанное тело доступно на req.rawBody а данные, проанализированные в формате JSON, доступны в req.body .

Из body-парсера GitHub я обнаружил, что это удваивает использование оперативной памяти для каждого запроса, но, поскольку мне нужна эта функциональность, у меня нет другого выхода.

За исключением, возможно, создания другого сервера только для веб-крючка Stripe, с которым я хотел справиться.

Оригинал: “https://flaviocopes.com/express-get-raw-body/”