Skip to content

Instantly share code, notes, and snippets.

@davmrv
Created April 12, 2018 16:42
Show Gist options
  • Save davmrv/cab7e3d42c69e77217fc3898a2818fb9 to your computer and use it in GitHub Desktop.
Save davmrv/cab7e3d42c69e77217fc3898a2818fb9 to your computer and use it in GitHub Desktop.
Express MongoDB GridFs
const mongoose = require('mongoose');
const GridFs = require('gridfs-stream');
const fs = require('fs');
const express = require('express');
const app = express();
mongoose.connect('mongodb://localhost:27017/test');
GridFs.mongo = mongoose.mongo;
const connection = mongoose.connection;
connection.on('error', console.error.bind(console, 'connection error:'));
connection.once('open', () => {
const gfs = GridFs(connection.db);
app.get('/write', (req, res) => {
const writeStream = gfs.createWriteStream({
filename: 'testing_2.jpg',
});
fs.createReadStream('./testing_2.jpg').pipe(writeStream);
writeStream.on('close', (file) => {
res.send(`File stored: ${file.filename}`);
});
});
app.get('/read/:image', (req, res) => {
gfs.exist({
filename: req.param('image'),
}, (err, file) => {
const readStream = gfs.createReadStream({
filename: req.param('image'),
});
readStream.pipe(res);
});
});
app.listen(3000, () => console.log('http://localhost:3000'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment