Почему сообщения от клиента к серверу тормозят, а потом приходят сразу пачкой?

Добрый день.
Написал для своих нужд небольшой сервер на node.js (код ниже). Его задача предельно проста: запустили, сидит и слушает, когда придет запрос. Как запрос пришел - просто переправить его дальше (в моем случае в Slack). Запустил, вроде до какого-то времени все работает, но заметил, что спустя какое-то время сообщения перестали доходить в слак. Я зашел в командную строку, остановил сервер, и в этот момент куча сообщений сразу дошло в слак (одновременно). Они почему-то накопились, и отправились только когда сервер остановился. С чем такое может быть связано? Что я не так сделал или чего наоборот не сделал?

const http = require("http");
const fs = require("fs");
const request = require('request');

const html = fs.readFileSync("./index.html");


const server = http.createServer((req, res) => {
  const { method, url } = req;
  if (url === '/' && method === "GET") {
    console.log(`URL of GET request: ${url}`);
    res.end(html);
  }
  if (url === '/' && method === "POST") {
    console.log(`URL of POST request: ${url}`);
    let data = "";
    req
      .on("data", chunk => {
        data += chunk.toString();
      })
      .on("end", () => {
        console.log(`Received data: ${data}`);
        const slackBody = {
          "text": data
        };
        const message = JSON.stringify(slackBody);
        request.post(
          {
            headers: {'Content-type': 'application/json'},
            url: 'https://someurl',
            body: message
          }, (err,res) => {
            if (err) console.log(err);
            console.log(res.statusCode);
            console.log(res.body);
          }
        )
      });
  }
});
server.listen(3000, () => console.log("Server is running"));
  • Вопрос задан
  • 1358 просмотров
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov
Web developer
Неплохо бы завершать POST-запросы. Надо добавить res.end(); в .on("end")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Zeus Capital Москва
от 70 000 до 130 000 руб.
IWU Нижний Новгород
от 150 000 до 250 000 руб.
21 авг. 2019, в 13:03
15000 руб./за проект
21 авг. 2019, в 12:59
10000 руб./за проект