Ich bin ziemlich neu in Express und Mongodb. Das Projekt, das ich an bearbeite erfordert mich:Express und Mongodb dieselben Daten mehrmals einfügen
- ein Objekt nehmen, die mehrere url
- Laden Sie den Inhalt der URL und speichern Sie sie in einem Cloud-Speicher enthält
- Links zu erzeugen, um die Datei für jede gespeicherten
- diese Links in MongoDB als einzelne Dokumente speichern
Das ankommende Objekt etwas wie folgt aussieht:
{
"id" : 12345678,
"attachments" : [
{
"original_url" : "https://example.com/1.png",
},
{
"original_url" : "https://example.com/2.png",
},
{
"original_url" : "https://example.com/3.png",
}
]
}
das Endziel ist 3 separate Dokument wie diese auf mongodb gespeichert haben:
{
"id" : 87654321,
"some_other_data": "etc",
"new_url" : "https://mycloudstorage.com/name_1.png"
}
Ich habe eine einfache Schleife wie folgt aus:
for(var i = 0; i < original_data.attachments.length; i++){
var new_url = "https://example.com/" + i + ".png";
download(original_url, new_url, function(new_url){
console.log(new_url)
new_data.new_url = new_url;
save_new_url_to_mongodb(new_data);
});
}
und die Sparfunktion wie folgt aussieht:
Der Download-Teil ist in Ordnung, ich bekomme 3 verschiedene Bilddateien in meinem Cloud-Speicher. Das console.log gibt mir auch 3 verschiedene neue URLs.
Das Problem ist, dass das neu gespeicherte mongodb Dokument alle die gleiche new_url haben. Und manchmal, wenn mehr original_url in den Originaldaten vorhanden ist, können einige der neuen Dokumente nicht gespeichert werden.
Vielen Dank
legt auch Ihre Download-Funktion –
@Wasiq Muhammad enthielt und die Speicher-Funktion aktualisiert außerdem, damit es mehr Sinn macht. Danke – gdzla