Добавьте 2 заголовка к вашему запросу:
Accept: image/jpeg
Accept-Encoding: gzip, deflate
Пример:
request({
uri: uri,
headers: {
'Accept': 'image/jpeg',
'Accept-Encoding': 'gzip, deflate'
}
}).pipe(fs.createWriteStream(filename)).on('close', resolve);
РЕДАКТИРОВАТЬ Некоторое объяснение
Проблема всервер, а не в клиенте.
Поскольку в Chrome он работает, вы можете попытаться воспроизвести запрос Chrome, скопировав все заголовки запроса в код node.js.
Как только код заработает, попробуйтеудалить один за другим, чтобы увидеть, что необходимо.
Для меня это работало только с 2 упомянутыми