You use a stream when working with large files. With a callback, the entire contents of the file must be loaded into memory immediately, and with a stream at any moment in time there will be only a fragment of the file in memory.
, , , . data, drain end pipe:
var readStream = fileSystem.createReadStream(filePath);
readStream.pipe(response);