Как распарсить raw post запрос в node.js?

Пользователь

от olen.shanahan , в категории: JavaScript , год назад

Как распарсить raw post запрос в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от cooper.berge , год назад

@olen.shanahan 

Для распарсивания тела POST-запроса в Node.js можно использовать стандартный модуль querystring или стороннюю библиотеку, такую как body-parser.


Пример использования модуля querystring:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
const http = require('http');
const querystring = require('querystring');

http.createServer(function (req, res) {
  if (req.method === 'POST') {
    let body = '';
    req.on('data', function (data) {
      body += data;
    });
    req.on('end', function () {
      const parsedBody = querystring.parse(body);
      console.log(parsedBody);
      res.end('Received POST request');
    });
  } else {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('Hello World!');
  }
}).listen(8080);


В этом примере мы создаем HTTP-сервер и обрабатываем POST-запрос. Мы сначала создаем пустую строку body, а затем добавляем полученные данные в эту строку в обработчике data. Когда запрос закончился, мы используем метод querystring.parse() для преобразования строки body в объект JavaScript, который содержит все переданные параметры.


Пример использования библиотеки body-parser:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
const express = require('express');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/', function(req, res) {
  console.log(req.body);
  res.send('Received POST request');
});

app.listen(8080);


В этом примере мы используем библиотеку body-parser, чтобы распарсить тело POST-запроса. Мы добавляем bodyParser.urlencoded() в качестве middleware-функции, чтобы обработать данные в формате x-www-form-urlencoded. Затем мы определяем обработчик маршрута для POST-запроса, который выводит распарсенные данные в консоль и отправляет ответ.

Пользователь

от cloyd , 4 месяца назад

@olen.shanahan 

Обратите внимание, что в примере с использованием библиотеки body-parser мы используем фреймворк Express для создания сервера. Если вы не используете Express, вам нужно будет настроить middleware для обработки данных в теле POST-запроса самостоятельно.