Maison >interface Web >js tutoriel >Comment puis-je télécharger des fichiers dans Node.js sans utiliser de bibliothèques externes ?
Téléchargement de fichiers dans Node.js sans bibliothèques externes
Le téléchargement de fichiers dans Node.js peut être effectué de manière native sans recourir à des bibliothèques externes. Voici comment :
Utilisation de l'API Fetch intégrée (nœud 18)
Le nœud 18 introduit le fetch global qui implémente l'API Fetch. Cette API fournit des méthodes pour télécharger des données, notamment du texte, du JSON et des données binaires. Par exemple :
const fetch = require('node-fetch'); const url = 'http://example.com/file.jpg'; const response = await fetch(url); const buffer = await response.arrayBuffer(); fs.writeFileSync('filename.jpg', Buffer.from(buffer));
À l'aide de requêtes HTTP GET (anciennes versions de nœud)
Avant le nœud 18, vous pouvez créer une requête HTTP GET et diriger sa réponse vers un flux de fichiers :
const http = require('http'); const fs = require('fs'); const file = fs.createWriteStream('file.jpg'); const url = 'http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg'; const request = http.get(url, (response) => { response.pipe(file); }); // Close file stream after download completes file.on('finish', () => { file.close(); console.log('Download completed'); });
Configuration de la ligne de commande Options
Si vous avez besoin d'options de ligne de commande telles que la spécification d'un fichier cible ou d'une URL, vous pouvez utiliser un package comme Commander pour la personnalisation :
const program = require('commander'); program .option('-o, --output <file>', 'Output file name') .option('-u, --url <url>', 'URL to download from') .parse(process.argv); const file = fs.createWriteStream(program.output || 'default.jpg'); const request = http.get(program.url, (response) => { response.pipe(file); });
Pour des informations plus détaillées et approches alternatives, reportez-vous à la ressource suivante : https://sebhastian.com/nodejs-download-file/
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!