nodejs试图从返回函数读取jpg数据流

Posted

技术标签:

【中文标题】nodejs试图从返回函数读取jpg数据流【英文标题】:nodejs trying to read stream of jpg data from return function 【发布时间】:2015-02-03 11:29:02 【问题描述】:

我正在尝试从 github 找到的 omdb API 取回海报数据。

我正在获取所有其他电影信息,但我正在努力处理流,我认为你应该从这个函数中获取海报。

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) 调用它,但我也不确定选项应该是什么。

如果有人可以帮助我或指出正确的方向,我将不胜感激!

【问题讨论】:

没人知道怎么做? 【参考方案1】:

您需要先读取流,然后再将其写入某些内容。下面的示例会将 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();
    );

【讨论】:

谢谢!想通了,但很高兴把它放在这里以供其他人将来参考!

以上是关于nodejs试图从返回函数读取jpg数据流的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs中异步函数的返回值

从函数返回结果(javascript、nodejs)

无法访问从 OpenCV 函数返回的 Mat 值

Mongoose - 通过回调函数返回设置虚拟

nodejs如何从异步回调函数返回想要的值

在NodeJS中完成下载和文件保存后从异步函数返回