2014-12-05 2 views
3

Im пытается получить данные плаката обратно из API omdb, найденного по адресу github.nodejs пытается прочитать поток данных jpg из функции возврата

Я получаю всю другую информацию о фильме, но я борюсь с потоками, как я думаю, вы должны получить плакат от этой функции.

Код в omdb API выглядит следующим образом:

// Get a Readable Stream with the jpg image data of the poster to the movie, 
// identified by title, title & year or IMDB ID. 
module.exports.poster = function (options) { 
    var out = new stream.PassThrough(); 

    module.exports.get(options, false, function (err, res) { 
     if (err) { 
      out.emit('error', err); 
     } else if (!res) { 
      out.emit('error', new Error('Movie not found')); 
     } else { 
      var req = request(res.poster); 
      req.on('error', function (err) { 
       out.emit('error', err); 
      }); 
      req.pipe(out); 
     } 
    }); 

    return out; 
}; 

Как я мог бы получить плакат от этого? Я называю это с помощью omdb.poster (параметры), однако я не уверен, какие должны быть варианты.

Если бы кто-нибудь мог мне помочь или указать мне в правильном направлении, я был бы признателен!

+0

Никто не знает, как это сделать? –

ответ

2

Вам нужно прочитать, а затем записать поток на что-то. Пример ниже будет записывать файл JPEG в вашу файловую систему, содержащую плакат.

const omdb = require('omdb'); 
const fs = require('fs'); 
const writeStream = fs.createWriteStream('test.jpg') 

omdb.poster({ title: 'Saw', year: 2004 }) 
    .on('data', (data) => { 
     writeStream.write(data) 
    }) 
    .on('end',() => { 
     writeStream.end(); 
    }); 
+0

Спасибо! Выяснил это, но хорошо, чтобы он был здесь для будущих ссылок для кого-либо еще! –

Смежные вопросы