Я иду по курсу 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 ) и кажется, что большинство решений зафиксировано в используемой библиотеке.