MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Simpan file di GridFS Mongo dengan ExpressJS setelah diunggah

Berikut demo sederhananya:

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 });
    // open a stream to the temporary file created by Express...
    fs.createReadStream(tempfile)
      .on('end', function() {
        res.send('OK');
      })
      .on('error', function() {
        res.send('ERR');
      })
      // and pipe it to gfs
      .pipe(writestream);
  });

  app.get('/download', function(req, res) {
    // TODO: set proper mime type + filename, handle errors, etc...
    gfs
      // create a read stream from gfs...
      .createReadStream({ filename: req.param('filename') })
      // and pipe it to Express' response
      .pipe(res);
  });

  app.listen(3012);
});

Saya menggunakan httpie untuk mengunggah file:

http --form post localhost:3012/upload [email protected]~/Desktop/test.png

Anda dapat memeriksa database Anda jika file telah diunggah:

$ mongofiles list -d test
connected to: 127.0.0.1
test.png    5520

Anda juga dapat mengunduhnya lagi:

http --download get localhost:3012/download?filename=test.png



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengapa saya mendapatkan pengecualian InvalidDocument saat menyimpan objek ke MongoDB di Django untuk pertama kalinya?

  2. Skema MongoDB terbaik untuk klon Twitter?

  3. Cara cepat untuk menemukan duplikat pada kolom yang diindeks di mongodb

  4. Mengambil HTML dari MongoDB untuk digunakan di Template

  5. Mongo db c# driver - bagaimana cara bergabung dengan id dalam koleksi?