我正在从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,”。我做错了什么?