sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan bruger du GridFS til at gemme billeder ved hjælp af Node.js og Mongoose

Jeg var ikke tilfreds med det højest bedømte svar her, og derfor giver jeg et nyt:Jeg endte med at bruge nodemodulet 'gridfs-stream' (god dokumentation der!), som kan installeres via npm.Med det og i kombination med mongoose, kunne det se sådan ud:

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

Bemærk, at stien er stien til filen på det lokale system.

Hvad angår min læsefunktion af filen, skal jeg i mit tilfælde bare streame filen til browseren (ved hjælp af express):

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


  1. Filskrivningsoperationer i mongo script?

  2. PyMongo -- cursor iteration

  3. Sådan får du flere rækker til en kommasepareret liste i SQL

  4. Er der en kommando i Redis til HASH-datastruktur, der ligner MGET?