Потоковые и ответные обратные вызовы запускаются произвольно - PullRequest
0 голосов
/ 02 июля 2018

Я новичок в node.js. Я пытаюсь написать простой http-сервер, который обслуживает файл, указанный на консоли на данном порту.

let http = require ('http'); let fs = require ('fs');

let server = http.createServer ((запрос, ответ) => {

let fileStream = fs.createReadStream(process.argv[3]);
fileStream.pipe(response);

fileStream.on('end', () => {
  console.log('Stream ended.'); // 1
  response.end(() => {
    console.log('Response ended.'); // 2
  });
}); 
});

server.listen(process.argv[2]);

Хотя первый console.log('Stream ended') записывается дважды в консоль, когда я отправляю запрос через браузер, второй console.log('Response ended.) никогда не вызывается, даже если все в моем файле .txt было отправлено в браузер.

Я бы ожидал, что оба появятся, однажды.

Я не смог найти никакой информации об этом в официальной документации, но труба () завершает ответ автоматически? Почему console.log # 1 запускается дважды?

Заранее спасибо!

...