I have found posts that are close to what I\'m looking for, but I have not been able to successfully implement what I want. Here is the general flow:
Make sure your string is correct. This worked for me..
var buf = new Buffer(b64stringhere, 'base64');
var express = require('express'), app = express();
app.get('/img', function(r, s){
s.end(buf);
})
app.listen(80);
You can take the string from MongoDB, create a new buffer instance, and specify an encoding when doing so. The resultant buffer will be in binary data.
var b64str = /* whatever you fetched from the database */;
var buf = new Buffer(b64str, 'base64');
So in your implementation:
server.get(version+'/images/:id', function(req, res) {
gridfstore.read(req.params.id, function(err, data) {
var img = new Buffer(data.buffer, 'base64');
res.writeHead(200, {
'Content-Type': 'image/jpeg',
'Content-Length': img.length
});
res.end(img);
});
});