В одном приложении, которое я создаю, у меня возникла такая проблема.
Используя 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/”