2014-12-05 71 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