J'ai un tableau de chaînes qui devraient être écrites dans un fichier .txt. J'ai également besoin de compresser le fichier .txt résultant au format .zip en utilisant JSZip. Du coté client, j'ai pu générer un blob 'text/plain' en utilisant ce tableau de chaînes puis j'ai compressé ce blob au format .zip en utilisant JSZip. J'ai besoin de faire la même chose côté serveur en utilisant node.js, mais j'ai réalisé que Blob n'est pas disponible dans node.js. J'ai essayé d'utiliser 'Buffer' au lieu de Blob, et j'ai obtenu un fichier binaire compressé en .zip; Je suis un débutant avec node.js et je ne pouvais pas comprendre les concepts de Buffer. Puis-je créer un blob dans node.js? ou Puis-je effectuer les mêmes opérations avec node.js Buffer?Comment générer un fichier zip en utilisant le contenu du buffer dans node.js en utilisant JSZip?
Du côté client, je peux générer le fichier zip à partir du contenu Blob comme celui-ci,
//stringsArray is an array of strings
var blob = new Blob(stringsArray, { type: "text/plain" });
var zip = new JSZip();
zip.file('file.txt' , blob);
zip.generateAsync({ type: 'blob', compression: 'DEFLATE' })
.then(function(zipFile){
//do something with zipFile
}, function(error){
console.log('Error in compression');
});
Comment puis-je faire la même chose en utilisant Node.js?
Ce code devrait fonctionner tel quel. Vérifiez peut-être la documentation de JSZip s'ils ont une méthode différente pour Node. –
@BrahmaDev, j'ai l'erreur 'Blob is not defined' dans node.js – HariV
Désolé pour cela, vous devez utiliser Buffer. La documentation serait un bon point de recherche autour de ceci: https://stuk.github.io/jszip/documentation/api_jszip/generate_async.html –