J'ai un problème de savoir quand la boucle est terminée,Comment attendre une boucle pour créer des flux avant de les sauvegarder?
app.post('/api/books', upload.array('images'), function(req, res) {
let book = req.body.book;
let arr = [];
// GridFS get connection with DB
var gfs = gridfsstream(conn.db);
var writestream;
for (i = 0; i < req.files.length; i++) {
writestream = gfs.createWriteStream({
filename: req.files[i].originalname
});
fs.createReadStream('uploads/' + req.files[i].filename).pipe(writestream);
writestream.on("close", function(file) {
console.log(file.filename + "stored successfully into mongodb using gridfs");
});
writestream.on("error", function(file) {
console.log(file.filename + "not stored into mongodb using gridfs");
});
base64(writestream.name, function(response) {
arr.push(response);
});
}
book.images = arr;
Book.addBook(book, function(err, book) {
if (err) {
throw err;
}
res.json(book);
});
});
Le problème est: L'arr tableau est vide quand je fais
book.images = arr
Je dois attendre la boucle soit terminée, mais Comment puis je faire ça?
Je sais que cela fonctionne parce que je l'ai déjà mis un console.log()
et fonctionne correctement
base64(writestream.name, function(response) {
arr.push(response);
});
Merci !!!! travaillé parfaitement !!! –