MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak używać GridFS do przechowywania obrazów przy użyciu Node.js i Mongoose?

Nie byłem zadowolony z najwyżej ocenianej odpowiedzi tutaj, więc dostarczam nową:Skończyło się na użyciu modułu węzła „gridfs-stream” (świetna dokumentacja!), który można zainstalować przez npm. w połączeniu z mangustą, mogłoby to wyglądać tak:

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

Zwróć uwagę, że ścieżka jest ścieżką do pliku w systemie lokalnym.

Jeśli chodzi o moją funkcję odczytu pliku, w moim przypadku wystarczy przesłać plik do przeglądarki (za pomocą ekspresu):

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. Jak używać Spring do łączenia się z MongoDB, która wymaga uwierzytelnienia?

  2. mongodb uzyskać różne rekordy

  3. Warunkowa suma $ w MongoDB

  4. Dopełnienie w SQL

  5. Zduplikuj dokument w MongoDB przy użyciu nowego _id