Версия node.js - 8.2.1. Думаю не лучший выбор был.
Почему возникает ошибка
Cannot read property 'Symbol(asyncId)' of null
?
Stack trace_http_outgoing.js:636
nextTick(msg.socket[async_id_symbol],
^
TypeError: Cannot read property 'Symbol(asyncId)' of null
at write_ (_http_outgoing.js:636:24)
at ServerResponse.write (_http_outgoing.js:630:10)
at Timeout.setTimeout [as _onTimeout] (C:\Users\iamevg_\Desktop\app\app.js:8:9)
at ontimeout (timers.js:488:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:283:5)
Код:
let server = require("http").createServer().listen(8080);
server.on("request", (req, res) => {
res.writeHead(200);
res.write("Start");
setTimeout(() => {
res.write("Finish");
}, 3000);
req.on("data", msg => {
console.log(msg.toString());
});
req.on("end", () => {
res.end();
});
});
Отправляю запрос через curl
curl -d "Hello" http://localhost:8080
. Данные приходят, только вот по истечению setTimeout происходит ошибка. Только начал изучать node.js, поэтому даже примерно догадаться не могу в чем проблема. У преподавателя данный код отрабатывает нормально, вероятно потому что использует более раннюю версию.
PS. Первый раз буффер данных пришел нормально. Сначала вывелось "Start", спустя 3 секунды "Finish". После этого скрипт закончил работу. Сейчас же выходит вышеописанный случай.
PSS. Попробовал опять отправить точно такой же запрос. Ничего не менял. Теперь выскакивает ошибка что происходит запись после окончания.
Stack Traceevents.js:182
throw er; // Unhandled 'error' event
^
Error: write after end
at write_ (_http_outgoing.js:635:15)
at ServerResponse.write (_http_outgoing.js:630:10)
at Timeout.setTimeout [as _onTimeout] (C:\Users\iamevg_\Desktop\app\app.js:8:9)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)