Maison >interface Web >js tutoriel >Comment puis-je télécharger des fichiers dans Node.js sans utiliser de bibliothèques externes ?

Comment puis-je télécharger des fichiers dans Node.js sans utiliser de bibliothèques externes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-13 09:16:14719parcourir

How Can I Download Files in Node.js Without Using External Libraries?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn