sql >> Databasteknik >  >> NoSQL >> MongoDB

Lagra bildfil i binär data i mongoose-schema och visa bild i html-form

Först och främst måste du konvertera buffertdata till base64. Du kan göra det i back-end eller front-end det spelar ingen roll. Använd bara yourBufferData.toString('base64') . Då kan du använda den.

Jag skulle dock föreslå ett annat sätt att lagra bilder istället för att lagra binär data. Förutsatt att du använder nodejs. Du kan skapa en bild i ett arkiv med dessa binära data med fs.writeFile metod. Sedan kan du lagra den bildsökvägen i posten (db). Efter det lägger du bara in sökvägen till ng-src="filsökvägen som du sparade". Här är exemplet som jag använder:

var path = 'upload/profiles/' +req.body.userId + '_profile.jpg';
      fs.writeFile(path, base64data, function(err) {
        if (err) return next(err);
        User.findByIdAndUpdate({
          _id: req.body.userId
        }, {
          $set: {
            profileImg: 'upload/profiles/' +req.body.userId + '_profile.jpg'
          }
        }, function(err, user) {
          if (err) return next(err);
          return res.send(user);
        });
      });

  <img ng-src="savedpath">



  1. MongoDB $lookup på kapslat dokument

  2. Meteor / ReactJS - UI blinkande problem:rendering två gånger före och efter kontroll av en databas

  3. Mongo:datum i sammanställd matchningsfråga verkar ignoreras

  4. Tilldela mongoose-returresultat till variabeln node js