2014-12-05 65 views
3

我試圖從omdb API獲取海報數據,發現在githubnodejs試圖從返回函數讀取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(options)調用它,但是我不確定選項應該是什麼。

如果有人能夠幫助我或指引我走向正確的方向,我將不勝感激!

+0

沒有人知道如何做到這一點? – 2014-12-15 15:19:39

回答

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

謝謝!想出來,但很好,在這裏爲其他人的未來參考! – 2016-01-10 10:37:37