sql >> Databáze >  >> NoSQL >> MongoDB

Jak používat GridFS k ukládání obrázků pomocí Node.js a Mongoose

Zde jsem nebyl spokojen s odpovědí s nejvyšším hodnocením, a tak poskytuji novou:Skončil jsem pomocí modulu uzlu 'gridfs-stream' (skvělá dokumentace!), který lze nainstalovat přes npm. S ním a v v kombinaci s mangustou by to mohlo vypadat takto:

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

Všimněte si, že cesta je cesta k souboru v místním systému.

Pokud jde o funkci čtení souboru, v mém případě stačí streamovat soubor do prohlížeče (pomocí expresního):

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


  1. Jak vytvořit spojení Redis s Master a Slave

  2. Docker:změňte složku, kam se mají ukládat svazky dockeru

  3. Součet ve vnořeném dokumentu MongoDB

  4. Mongodb Agregation Framework:Používá $group index?