5

我在网络服务器 (http://example.com/img.jpg) 上有一张图片。我在浏览器中打开该图像并将其保存到磁盘。

fs如果我通过“ ”模块( )在节点中打开文件fs.readFileSync,我会得到一个以 0xff 开头的缓冲区,这是我所期望的。

我希望能够直接从 HTTP 请求中获得相同的结果。我正在使用“请求”模块发出请求。

request('http://example.com/img.jpg',function(error, response, body){
  //code here
});

我不知道如何将响应或正文转换为从文件系统获得的等效缓冲区。我错过了什么?

4

1 回答 1

5

您可以Buffer通过将 to 设置encodingnull

request('http://example.com/img.jpg', { encoding: null }, function(error, response, body){
  console.log(Buffer.isBuffer(body)); // true
});

request将任何其他值视为 的参数buffer.toString()默认undefined"utf8".

于 2012-12-19T00:46:51.350 回答