Maison > Article > interface Web > Comment télécharger des fichiers dans nodejs
Dans Node.js, vous pouvez utiliser les modules node-fetch et fs pour télécharger des fichiers. Voici comment utiliser ces deux modules pour télécharger des fichiers.
Vous devez d’abord installer les modules node-fetch et fs. Vous pouvez utiliser la commande npm pour installer :
npm install node-fetch fs
Une fois l'installation terminée, vous pouvez utiliser ces deux modules.
Le processus de téléchargement de fichiers peut être divisé en plusieurs étapes :
Voici un exemple de code pour télécharger un fichier :
const fetch = require('node-fetch'); const fs = require('fs'); const downloadFile = async (url, dest) => { const response = await fetch(url); if (!response.ok) { throw new Error(`failed to download file: ${response.statusText}`); } const fileStream = fs.createWriteStream(dest); await new Promise((resolve, reject) => { response.body.pipe(fileStream); response.body.on("error", (err) => { reject(err); }); fileStream.on("finish", function() { resolve(); }); }); }; const fileUrl = 'https://example.com/files/file.txt'; const destPath = 'file.txt'; downloadFile(fileUrl, destPath) .then(() => { console.log('file downloaded successfully'); }) .catch((err) => { console.error('failed to download file:', err); });
Ce code Utilisez d'abord le module node-fetch pour envoyer une requête HTTP afin d'obtenir les données du fichier, puis utilisez le module fs pour écrire les données dans le fichier. Il convient de noter que lors du processus d'obtention des données du fichier, vous devez vérifier si le code d'état de la réponse HTTP est 200. Sinon, le téléchargement a échoué.
Le code utilise la syntaxe asynchrone async/wait et les objets Promise pour garantir que les données du fichier sont écrites avant la sortie du résultat.
L'exemple de code ci-dessus n'est qu'un exemple simple de téléchargement d'un fichier, si vous avez besoin de plus d'options et de fonctions, vous pouvez ajuster le code avec d'autres paramètres.
Vous pouvez utiliser le paramètre headers de node-fetch pour spécifier les en-têtes de requête HTTP, par exemple :
const headers = { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' }; const response = await fetch(url, { headers: headers });
Si vous devez limiter la vitesse de téléchargement, vous pouvez utilisez le module tiers speedline, par exemple :
const speedline = require('speedline'); const fileUrl = 'https://example.com/files/file.txt'; const destPath = 'file.txt'; const maxSpeed = 100; // 100 KB/s const response = await fetch(fileUrl); const stream = response.body; const fileStream = fs.createWriteStream(destPath); await speedline(stream.pipe(fileStream), maxSpeed);
Si vous devez mettre en cache les fichiers téléchargés, vous pouvez utiliser le module tiers node-cache, par exemple :
const NodeCache = require('node-cache'); const fileCache = new NodeCache(); const downloadFile = async (url, dest) => { const cachedData = fileCache.get(url); if (cachedData) { return fs.writeFileSync(dest, cachedData); } const response = await fetch(url); if (!response.ok) { throw new Error(`failed to download file: ${response.statusText}`); } const fileData = await response.text(); fileCache.set(url, fileData); fs.writeFileSync(dest, fileData); };
Ce qui précède est les connaissances de base et un exemple de code pour le téléchargement de fichiers Node.js. En fonction des besoins réels et de l'environnement réseau, vous pouvez choisir les paramètres et les méthodes qui vous conviennent pour télécharger des fichiers.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!