我正在尝试在下载后将图像存储在mongo中
这是我的代码,它会导致损坏的图像存储在数据库中。
request('http://test.jpg', function (error, response, image) {
db.images.insert(
{
file_name: 'test.jpg',
image: new Buffer(image)
},
function(err){
//mongojs callback
}
);
});
请注意,我正在使用mongojs模块并将图像存储在常规文档中作为BinData类型。
此外,如果我将图像写入文件,读取它然后将图像保存到数据库,则没有损坏。但我不想这样做,因为我打算完全避免文件系统。
我很漂亮,这与编码或缓冲区有关,但我对这些了解不足以解决我的问题。
如果您不想使用像gridfs这样的适当的图像存储解决方案,则可以对图像进行base64编码。
如何在 JavaScript 中将字符串编码为 Base64?
这给了你一个可以存储在 mongo 中的字符串。