Почему запись в моей консоли: `TimeoutOverflowWarning: 4294967296000 не вписывается в 32-разрядное целое число со знаком` - PullRequest
0 голосов
/ 01 марта 2020

Я иду по курсу stream-adventure . Одним из назначений является создание http-сервера, который преобразует все запросы в верхний регистр и возвращает его в ответе.

Теперь мне удалось заставить его работать, и назначение прошло. Тем не менее, консоль дает мне TimeoutOverflowWarning.

(node:15710) TimeoutOverflowWarning: 4294967296000 does not fit into a 32-bit signed integer.
Timer duration was truncated to 2147483647.
(node:15710) TimeoutOverflowWarning: 4294967296000 does not fit into a 32-bit signed integer.
Timer duration was truncated to 2147483647.

Мне интересно, это утечка памяти или что-то вызвано моим кодом, или это что-то еще. Поскольку в сообщении об ошибке упоминается 32-разрядная версия, мне интересно, связано ли это с тем, что я использую Macbook Pro 2016 года, который работает в 64-разрядной версии. (узел v10.17.0)

Код:

'use-strict'
const through = require('through2')
const http = require('http')
const port = process.argv[2]

const uppercaser = through(function (buffer, _, next) {
  this.push(buffer.toString().toUpperCase())
  next()
});

const server = http.createServer(function (req, res) {
  if (req.method === 'POST') {
    res.writeHead(200,  { 'Content-Type': 'text/plain' })
    req.pipe(uppercaser).pipe(res)
  } else {
    res.writeHead(404)
    res.end()
  }
});

server.listen(port)

Поиск в Google выявляет различные причины этой проблемы ( пример 1 , пример 2 ) и кажется, что большинство решений зафиксировано в используемой библиотеке.

...