aheckmann / gridfs-stream

Easily stream files to and from MongoDB
MIT License
615 stars 120 forks source link

Unable to get binary data from gridfs #87

Open leemarreros opened 8 years ago

leemarreros commented 8 years ago

I am doing this to get the binary data of 'angus-screen-1.png', which is already stored in mongodb.

var mongo = require('mongodb'); var Grid = require('gridfs-stream');

MongoClient.connect(url, function(err, db){ var gfs = Grid(db, mongo);

if (err) {

console.log('Unable to connect');

} else { var readstream = gfs.createReadStream({ filename: 'angus-screen-1.png' }); console.log(readstream); db.close(); } });

The result of readstream is:

[ { _id: 565e4941bdb60a104a97c184, filename: 'angus-screen-1.png', contentType: 'binary/octet-stream', length: 186715, chunkSize: 261120, uploadDate: Tue Dec 01 2015 17:28:39 GMT-0800 (PST), aliases: null, metadata: null, md5: '203a4675ff662d03e472717b8d481bb1' } ] Steves-MacBook-Pro:client steveleec$ node db.js connected to mongodb://fdsgdsgsdg:lkfd;sfk;sdkf@fsdkfkj32lfkj.mongolab.com:59634/fdslkfjdslkf files [ { _id: 565e4941bdb60a104a97c184, filename: 'angus-screen-1.png', contentType: 'binary/octet-stream', length: 186715, chunkSize: 261120, uploadDate: Tue Dec 01 2015 17:28:39 GMT-0800 (PST), aliases: null, metadata: null, md5: '203a4675ff662d03e472717b8d481bb1' } ] readstream { _readableState: { objectMode: false, highWaterMark: 16384, buffer: [], length: 0, pipes: null, pipesCount: 0, flowing: null, ended: false, endEmitted: false, reading: false, sync: true, needReadable: false, emittedReadable: false, readableListening: false, defaultEncoding: 'utf8', ranOut: false, awaitDrain: 0, readingMore: false, decoder: null, encoding: null }, readable: true, domain: null, _events: { end: [Function] }, _eventsCount: 1, _maxListeners: undefined, _opened: false, _opening: false, _closing: false, _end: false, _needToPush: false, _grid: { db: { domain: null, _events: {}, _eventsCount: 0, _maxListeners: undefined, s: [Object], serverConfig: [Getter], bufferMaxEntries: [Getter], databaseName: [Getter], options: [Getter], native_parser: [Getter], slaveOk: [Getter], writeConcern: [Getter] }, mongo: { [Function] MongoError: [Object], Admin: [Object], MongoClient: [Object], Db: [Object], Collection: [Object], Server: [Object], ReplSet: [Object], Mongos: [Object], ReadPreference: [Object], GridStore: [Object], Chunk: [Object], Logger: [Object], Cursor: [Object], Binary: [Object], Code: [Object], Map: [Object], DBRef: [Object], Double: [Object], Long: [Object], MinKey: [Object], MaxKey: [Object], ObjectID: [Object], ObjectId: [Object], Symbol: [Object], Timestamp: [Object], connect: [Circular], instrument: [Function] }, curCol: 'fs', _col: { s: [Object] } }, options: { filename: 'angus-screen-1.png' }, name: 'angus-screen-1.png', mode: 'r', _chunkSize: 261120, range: { startPos: 0, endPos: undefined }, _currentPos: 0, _store: { db: { domain: null, _events: {}, _eventsCount: 0, _maxListeners: undefined, s: [Object], serverConfig: [Getter], bufferMaxEntries: [Getter], databaseName: [Getter], options: [Getter], native_parser: [Getter], slaveOk: [Getter], writeConcern: [Getter] }, referenceBy: 0, fileId: 565fd39ef4e88c4b52125684, filename: 'angus-screen-1.png', mode: 'r', options: { filename: 'angus-screen-1.png', root: 'fs' }, isOpen: false, root: 'fs', position: 0, readPreference: { _type: 'ReadPreference', mode: 'primary', tags: undefined }, writeConcern: { w: 1 }, internalChunkSize: 261120, promiseLibrary: [Function: Promise], chunkSize: [Getter/Setter], md5: [Getter], chunkNumber: [Getter] } }

From the terminal, I am using Mongo version 3.0.7. From NPM, I am using Mongo version 2.0.49.

Any suggestion how can I get the data and insert it in a html img tag?