это завершает событие завершения
nt@nt-MS-7885:~/Desktop/node $ node index.js
Received data
Received data
All data received
вы не добавили все куски в файл, поэтому вы получаете пустой файл
попробуйте этот подход с использованием потока
const http = require('http');
const fs = require('fs');
const Stream = require('stream').Transform;
const fileName = "mqdefault.jpg";
const request = http.get("http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg", function(response) {
let data = new Stream()
response.on('data', function(chunk){
data.push(chunk);
process.stdout.write('Received data\n');
})
response.on('end', function(){
fs.writeFileSync(fileName, data.read());
process.stdout.write('All data received');
})
}).on('error', (e) => {
console.error(`Got error: ${e.message}`);
});