Here is a simple demo:
var express = require('express'); var fs = require('fs'); var mongo = require('mongodb'); var Grid = require('gridfs-stream'); var db = new mongo.Db('test', new mongo.Server("127.0.0.1", 27017), { safe : false }); db.open(function (err) { if (err) { throw err; } var gfs = Grid(db, mongo); var app = express(); app.use(express.bodyParser()); app.post('/upload', function(req, res) { var tempfile = req.files.filename.path; var origname = req.files.filename.name; var writestream = gfs.createWriteStream({ filename: origname });
I use httpie to download the file:
http --form post localhost:3012/upload filename@ ~/Desktop/test.png
You can check your database if the file is uploaded:
$ mongofiles list -d test connected to: 127.0.0.1 test.png 5520
You can also download it again:
http --download get localhost:3012/download?filename=test.png
robertklep
source share