Heim  >  Artikel  >  Web-Frontend  >  So laden Sie Dateien in NodeJS herunter

So laden Sie Dateien in NodeJS herunter

王林
王林Original
2023-05-27 20:43:051431Durchsuche

In Node.js können Sie Node-Fetch- und FS-Module zum Herunterladen von Dateien verwenden. Hier erfahren Sie, wie Sie diese beiden Module zum Herunterladen von Dateien verwenden.

Zuerst müssen Sie die Module Node-Fetch und FS installieren. Sie können den Befehl npm zum Installieren verwenden:

npm install node-fetch fs

Nach Abschluss der Installation können Sie diese beiden Module verwenden.

Datei herunterladen

Der Vorgang des Herunterladens einer Datei kann in mehrere Schritte unterteilt werden:

  1. HTTP-Anfrage senden, um Dateidaten zu erhalten #🎜🎜 #
  2. Daten in Datei schreiben
Hier ist ein Beispielcode zum Herunterladen einer Datei:

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);
  });

Dieser Code verwendet zuerst den Knoten- fetch-Modul zum Senden einer HTTP-Anfrage, um die Dateidaten abzurufen, und dann das fs-Modul verwenden, um die Daten in die Datei zu schreiben. Beachten Sie, dass Sie beim Abrufen der Dateidaten prüfen müssen, ob der HTTP-Antwortstatuscode 200 lautet. Andernfalls ist der Download fehlgeschlagen.

Der Code verwendet die asynchrone Syntax async/await und Promise-Objekte, um sicherzustellen, dass die Dateidaten geschrieben werden, bevor das Ergebnis ausgegeben wird.

Weitere Optionen

Der obige Beispielcode ist nur ein einfaches Beispiel für das Herunterladen einer Datei. Wenn Sie weitere Optionen und Funktionen benötigen, können Sie den Code mit anderen Parametern anpassen.

    HTTP-Anforderungsheader angeben
Sie können den Headers-Parameter von Node-Fetch verwenden, um HTTP-Anforderungsheader anzugeben, zum Beispiel: #🎜🎜 #
const headers = {
  'Authorization': 'Bearer ' + token,
  'Content-Type': 'application/json'
};
const response = await fetch(url, {
  headers: headers
});
# 🎜🎜#

Download-Geschwindigkeit begrenzen

  1. Wenn Sie die Download-Geschwindigkeit begrenzen müssen, können Sie das Drittanbietermodul speedline verwenden, zum Beispiel: #🎜🎜 #
    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);
Heruntergeladene Dateien zwischenspeichern

    Wenn Sie heruntergeladene Dateien zwischenspeichern müssen, können Sie das Modul Node-Cache eines Drittanbieters verwenden, zum Beispiel: #🎜 🎜#
    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);
    };
  1. Das Obige ist die grundlegende Methode zum Herunterladen von Dateien mit Node.js-Kenntnissen und Beispielcode. Je nach den tatsächlichen Anforderungen und der Netzwerkumgebung können Sie die für Sie geeigneten Parameter und Methoden zum Herunterladen von Dateien auswählen.

Das obige ist der detaillierte Inhalt vonSo laden Sie Dateien in NodeJS herunter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn