Bonjour J'essaie de télécharger plusieurs fichiers, l'écriture de fichier est correcte. mais je veux déplacer les fichiers dans mongo grid fs, le premier fichier ne se déplace que correctement le reste du fichier ne se déplacent pas dans la grille fs et ne pas dissocier aussi.Problème asynchrone lors du chargement de plusieurs fichiers
Voici mon code:
for (var i = 0; i < files.length; i++) {
(function(i) {
var singleFile = files[i];
var fileData = JSON.parse(files[i].name);
var fileName = fileData.fileName;
var fileType = files[i].type;
var uniqId = fileData.attachmentId;
var targetPath = "./attachments/" + uniqId;
var tmp_path = files[i].path;
console.log("uniqId : " + uniqId);
//uploadFile(tmp_path,targetPath,fileName,uniqId,fileType);
fs.readFile(tmp_path, function(err, data) {
fs.writeFile(targetPath, data, function(err) {
if (!err) {
mongoose.connect(configSettings.mongodb.ip, configSettings.mongodb.databasename, configSettings.mongodb.port, function(err, succ) {
var id = new ObjectID(uniqId);
new GridStore(mongoose.connection.db, id, fileName, 'w', {
'content_type': 'application/octet-stream'
}).open(function(err, gs) {
gs.writeFile(targetPath, function(err) {
if (err) {
console.log("err");
}
gs.close(function(err) {
console.log("success");
fs.unlink("./attachments/" + uniqId, function(err) {
console.log("err : " + err);
console.log(uniqId + ' ::successfully deleted ');
});
mongoose.connection.close();
});
});
});
});
}
});
});
})(i);
}
res.send("success");
Ce que j'ai essayé avec la fonction de fermeture, même j'ai essayé de créer la fonction séparée également, mais le même résultat vient (un seul fichier inséré et dissociées).
que dois-je faire dans ce cas pour stocker tous les fichiers dans gridfs et dissocier du dossier temporaire?
est-ce que mongodb supporte toutes ces ouvertures et fermages simultanés? ne devrait-il pas être préférable d'établir d'abord la connexion à mongobd et d'ouvrir la grille, puis, dans cette fonction d'ouverture de succès, placer la boucle pour lancer tous les fichiers de traitement? – Kaddath