MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да използвате GridFS за съхраняване на изображения с помощта на Node.js и Mongoose

Не бях доволен от отговора с най-висока оценка тук и затова предоставям нов:накрая използвах модула на възел „gridfs-stream“ (страхотна документация там!), който може да бъде инсталиран чрез npm. С него и в комбинация с мангуста, може да изглежда така:

var fs = require('fs');
var mongoose = require("mongoose");
var Grid = require('gridfs-stream');
var GridFS = Grid(mongoose.connection.db, mongoose.mongo);

function putFile(path, name, callback) {
    var writestream = GridFS.createWriteStream({
        filename: name
    });
    writestream.on('close', function (file) {
      callback(null, file);
    });
    fs.createReadStream(path).pipe(writestream);
}

Имайте предвид, че пътят е пътят на файла в локалната система.

Що се отнася до функцията ми за четене на файла, за моя случай просто трябва да прехвърля файла към браузъра (използвайки експрес):

try {
    var readstream = GridFS.createReadStream({_id: id});
    readstream.pipe(res);
} catch (err) {
    log.error(err);
    return next(errors.create(404, "File not found."));
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как мога да обещая собствения Javascript драйвер на MongoDB, използвайки bluebird?

  2. Управление на AWS:Как да спестите 30% от разходите си за хостинг на MongoDB

  3. Spring Data MongoDB с Java 8 LocalDate MappingException

  4. Наблюдение на екземпляри на MongoDB с помощта на услуга за наблюдение на MongoDB (MMS)

  5. Попълване на вложен масив в mongoose