Node.JS将Base64字符串转换为二进制并写入MongoDB GridFS

时间:2015-02-17 03:48:14

标签: node.js mongodb base64 gridfs gfs

我有一个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){})

0 个答案:

没有答案