【问题标题】:Saving an image file with Node.js request library causes exception使用 Node.js 请求库保存图像文件会导致异常
【发布时间】:2012-10-01 10:42:42
【问题描述】:

这是来自 请求的 Github 存储库 - https://github.com/mikeal/request

您可以将任何响应流式传输到文件流。

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

我已经这样修改了,其中 largeImage 是来自 3rd-party 网站的绝对 url 路径。

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

但我收到以下错误(不知道为什么?)。我查看了 createWriteStream API,它似乎是正确的。如果我只包含“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...

更新:问题是我没有在 /img/ 之前包含 ./public/ 文件夹。

这个更新后的代码可以正常工作:

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

【问题讨论】:

  • 大多数人都忘记了'./public/',包括我!

标签: image node.js stream request


【解决方案1】:

看起来一切正常。我的猜测是问题与权限有关,或者可能需要先创建 ./img/large 目录。

执行以下操作以获取更多信息:

var ws = fs.createWriteStream('./img/large/demo.jpg');
ws.on('error', function(err) { console.log(err); });
request(largeImage).pipe(ws);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    相关资源
    最近更新 更多