2016-08-04 32 views
0

Es gibt keinen Code, der das Update von Clodinary Image zeigt. Der Code, den ich unten geschrieben habe, aktualisiert das Bild, aber dann kann ich nicht sofort die FIll verwenden oder die Methode des Wolkenbilds einschränken.Wie wird nur das Cloudinäre Bild eines Benutzermodells aktualisiert?

cloudinary.uploader.upload(req.files.icon.path, function(img, err) { 
    console.log(img) 
    if(err){ 
     res.send(err); 
    }else{ 
     req.user.update({$set: {icon: img}}, function (err, count) { 
      res.send(img.fill(300,300));// this line says fill not defined. 
      //res.send(_img.fill(300,300));// this also fails 
     }); 
    } 
}); 

Antwort

1

Beachten Sie, dass die img, die zurückgegeben wird ist nicht das eigentliche Bild, es ist ein Ergebnis JSON der die Details des Bildes. Schauen Sie sich auch the documentation an, um zu sehen, wie Transformationen generiert werden. Insbesondere eine 300x300 fill Ernte anzuwenden, müssen Sie c_fill,h_300,w_300 an die URL hinzuzufügen, die mit etwas Ähnliches erreicht werden konnte:

cloudinary.image(img.public_id, { format: "jpg", width: 100, height: 150, crop: "fill" }) 
+0

Dank das Wichtigste, was ich von Ihrer Antwort gelernt habe, ist, dass ich img verwenden können. public_id als Parameter, das wurde nicht dokumentiert, denke ich. Ich benutzte diese Funktion cloudinary.url (img.public_id, {Format: "jpg", Breite: 100, Höhe: 150, Zuschneiden: "fill"}) anstelle dessen, was Sie vorgeschlagen haben. – enRaiser

+0

Sie haben Recht. 'cloudinary.url' würde in diesem Fall mehr Sinn machen. Froh, dass ich helfen konnte. –