2012-10-10 2 views
2

Это из Github репо запрос в - https://github.com/mikeal/requestСохранение файла изображения с библиотекой запроса Node.js вызывает исключение

Вы можете передавать любой ответ на файловый поток.

request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')) 

Я изменил его, как это так, где largeImage это абсолютный путь URL с веб-сайта третьей стороны.

request(largeImage).pipe(fs.createWriteStream('./img/large/demo.jpg')); 

Но я получаю следующее сообщение об ошибке (не знаю почему?). Я посмотрел на API createWriteStream, и это кажется правильным. Если я включу только «demo.jpg», он отлично работает. Но если я включаю путь рядом с «demo.jpg», он выдает исключение.

stream.js:81 
     throw er; // Unhandled stream error in pipe. 
      ^
Error: ENOENT, open './img/large/demo.jpg' 
10 Oct 16:51:02 - [nodemon] app crashed - waiting for file changes before starting... 

UPDATE: Проблема заключалась в том, я не включил ./public/ папку перед /IMG/.

Этот обновленный код работает правильно:

request(largeImage).pipe(fs.createWriteStream('./public/img/large/demo.jpg')); 
+0

большинство людей забыли «./public/», включая меня! –

ответ

3

Это все выглядит нормально. Я предполагаю, что проблема связана с разрешениями или, возможно, сначала нужно создать каталог ./img/large.

ли что-то подобное, чтобы получить больше информации:

var ws = fs.createWriteStream('./img/large/demo.jpg'); 
ws.on('error', function(err) { console.log(err); }); 
request(largeImage).pipe(ws); 
Смежные вопросы