MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Lưu trữ tệp trong Mongo's GridFS bằng ExpressJS sau khi tải lên

Đây là một bản demo đơn giản:

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);
});

Tôi sử dụng httpie để tải lên một tệp:

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

Bạn có thể kiểm tra cơ sở dữ liệu của mình nếu tệp được tải lên:

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

Bạn cũng có thể tải xuống lại:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tìm bản ghi mongoDB theo lô (sử dụng bộ điều hợp ruby ​​mongoid)

  2. MongoDB trên AWS:Làm thế nào để Chọn Loại Phiên bản EC2 Phù hợp cho Máy chủ MongoDB của bạn?

  3. Xác thực MongoDB 3.2 không thành công

  4. MongoDB cập nhật tất cả các trường lỗi mảng

  5. Những điều quan trọng cần theo dõi trong MongoDB