下载图像,然后将其提供给NodeJS

时间:2014-11-16 00:55:09

标签: node.js image mongodb request buffer

我正在从URL下载图像并将其存储在MongoDB中。之后,我希望能够将图像提供给客户端。这是我的下载代码:

request({url: urlString, encoding: null }, 
function (error, response, body) {
    if (!error && response.statusCode == 200) {
        body = new Buffer(body, 'binary');
        Images.collection.insert({img: 
           { contentType: response.headers['content-type'], data: body}, 
             url: urlString}, function() {});
        }
})

这是我的端点代码:

Images.findOne({url: query.url})
  .lean()
  .exec(function (err, doc) {
    if (err) return next(err);
    if(doc && doc.img) {
      res.contentType(doc.img.contentType);
      res.send(doc.img.data);
    }
  });

结果是一个比最初下载的文件大得多的文件。 mongo中的记录看起来仍然包裹着:“BinData(0,”。我做错了什么?

0 个答案:

没有答案