我有一个 Base64 字符串,我将其转换为二进制,如下所示:
var b64string = req.body.image.substr(23);//The base64 has a imageURL
var buf = new Buffer(b64string, 'base64');
我需要将它插入到 MongoDB GridFS 中。我遇到的问题是 createReadStream 需要一个文件路径,我已经在内存中拥有该文件。
这就是我正在尝试但不起作用的方法
var grid = new gfs(db, mongo, 'files');
grid.createWriteStream(options, function (err, ws) {
fs.createReadStream(buf, {autoClose: true})
.pipe(ws)
.on('close', function (f) {
console.log(f._id)
res.send(f._id)
})
.on('error', function (err) {
console.log(err)
})
})
但正如我所描述的,它想要一条我拥有的路径buf
更新---我想多了...这行得通
var b64string = req.body.image.substr(23);
var buf = new Buffer(b64string, 'base64');
var grid = new Grid(db, 'files');
grid.put(buf, {}function(err, file){})