HILFE ZUM KNOTENPUNKT

Multer Node.js (Wie es für Entwickler funktioniert)

Einführung

Verwaltung von Datei-Uploads und Erstellung von PDF-Dokumenten sind Standardanforderungen für viele Anwendungen in der aktuellen Online-Entwicklungslandschaft. Die Zusammenfassung der Fähigkeiten von IronPDF und Multer in einer Node.js-Umgebung ergibt eine starke Lösung, um diese Anforderungen effektiv zu erfüllen.

Multer ist eine Node.js-Middleware, die das Handling von Multipart/Form-Data—das hauptsächlich für Datei-Uploads verwendet wird—erleichtert. Aufgrund seiner großen Flexibilität können Entwickler Dateigrößenbeschränkungen, Speicheroptionen und Dateifilterung festlegen, um sichere und effektive Datei-Uploads zu gewährleisten. Multer ist eine erstklassige Option für Entwickler, die aufgrund der einfachen Integration mit Express.js die Dateiupload-Funktionalität leicht in ihre Anwendungen integrieren möchten.

Im Gegensatz dazu ist IronPDF eine leistungsstarke PDF-Erstellungsbibliothek, die es Programmierern ermöglicht, PDF-Dokumente mit HTML-Text zu erstellen. Mit seinen zahlreichen Funktionen, einschließlich der Unterstützung für die Ausführung von JavaScript, CSS-Styling sowie Schrift- und Bildeinbettung, ist es das perfekte Werkzeug, um dynamische Webinformationen in professionell aussehende PDFs umzuwandeln.

Wir werden die nahtlose Zusammenarbeit zwischen diesen beiden leistungsstarken Tools demonstrieren, indem wir erläutern, wie man IronPDF zur Erstellung von PDF-Dokumenten einrichtet und verwendet und Multer zur Verwaltung von Datei-Uploads in einer Node.js-Anwendung einsetzt.

Was ist Multer Node.js?

Multer ist eine Node.js-Middleware, die das Verarbeiten von multipart/form-data – hauptsächlich für Datei-Uploads verwendet – erleichtert. Es bietet eine zuverlässige Methode zur Handhabung von Datei-Upload-Funktionen in Webanwendungen und lässt sich mühelos in Express.js integrieren. Um sicherzustellen, dass nur autorisierte Dateitypen hochgeladen werden, bietet Multer Entwicklern die Möglichkeit, Dateigrößenbeschränkungen festzulegen, Speicheroptionen zu konfigurieren und Dateifilterung anzuwenden.

Es bietet dem Server Flexibilität bei der Verwaltung von Dateien, indem es sowohl Speicher auf der Festplatte als auch im Arbeitsspeicher unterstützt. Multer ist auch ideal für Formulare, bei denen zahlreiche Dateien gleichzeitig eingereicht werden müssen, da es mehrere hochgeladene Dateien gleichzeitig verarbeiten kann. Alles in allem vereinfacht Multer den Datei-Upload-Prozess und verbessert die Fähigkeit von Node.js-Apps, von Benutzern hochgeladenes Material sicher und effektiv zu verarbeiten.

Multer Node.js (Wie es für Entwickler funktioniert): Abbildung 1 - Multer Node.js

Funktionen von Multer für Node.js

Dateispeicheroptionen

  • Multer hat die Fähigkeit, hochgeladene Dateien direkt auf der Festplatte zu speichern. Die Festplattenspeicher-Engine ermöglicht es Ihnen, den Dateinamen und das Zielverzeichnis anzugeben. Dies ist besonders hilfreich für Programme, die erfordern, dass Dateien für die zukünftige Verwendung gespeichert werden.
  • Speicher: Multer hat die Fähigkeit, Dateien im Speicher als Pufferobjekte für den momentanen Gebrauch zu speichern. Dies ist hilfreich in Situationen, in denen Dateien nicht auf der Festplatte gespeichert werden müssen und sofort verarbeitet werden können.

Grenzen der Dateigröße

Die Größenbeschränkungen, die Sie mit Multer für hochgeladene Dateien festlegen können, helfen dabei, die Serverleistung zu schützen und Speicherressourcen effizient zu verwalten, indem das Hochladen zu großer Dateien verhindert wird. Sie können die Option "Einschränkungen" nutzen, um dies zu erreichen.

Dateifilterung

Multer hat eine fileFilter-Option, mit der Sie steuern können, welche Dateien akzeptiert werden. Dateien, die nicht den Anforderungen entsprechen, können von dieser Funktion abgelehnt werden, die außerdem den MIME-Typ der Datei und andere Attribute überprüfen kann. Dies gewährleistet, dass nur bestimmte Arten von Dateien—wie Dokumente und Bilder—eingereicht werden.

Verarbeiten mehrerer Dateien

Multer kann mehrere Dateien, die gleichzeitig hochgeladen werden, verwalten. Routen können so eingerichtet werden, dass sie mehrere Felder akzeptieren, die Dateien oder Arrays von Dateien enthalten. Dies ist hilfreich für Formulare, wenn Benutzer mehrere Dateien gleichzeitig hochladen müssen, wie z. B. unterstützende Dokumente und Profilbilder.

Anpassbare Speicher-Engines

Multer ermöglicht es Ihnen, neben den integrierten Festplatten- und Speicherlösungen neue Speicher-Engines zu entwerfen. Für optimale Flexibilität können Sie Ihre eigene Logik zum Verwalten von Dateiuploads erstellen, einschließlich des Ortes und der Art und Weise, wie Dateien gespeichert werden.

Einfache Integration mit Express

Multer ist so konzipiert, dass es sich problemlos in Express.js integrieren lässt. Es ist einfach, die Möglichkeit zum Hochladen von Dateien zu Ihren Webanwendungen hinzuzufügen, indem Sie es als Middleware in Ihren Express-Routen verwenden.

Automatische Verarbeitung von Multipart-Daten

Durch das automatische Parsen von multipart/form-data vereinfacht Multer den Prozess der Handhabung von Datei-Uploads in Ihrem Server-seitigen Code, indem hochgeladene Dateien und Formulardaten im req-Objekt verfügbar gemacht werden.

Einzel- und Mehrfach-Dateiuploads

Multer bietet mehrere Möglichkeiten (single, array und fields), um das Hochladen von einer oder mehreren Dateien zu verwalten. Die Einzelmethode verarbeitet eine Datei pro Anfrage, die Array-Methode unterstützt mehrere Dateien mit demselben Feldnamen, und die Felder-Methode kann zahlreiche Dateien mit unterschiedlichen Feldnamen verarbeiten.

Erstellen und Konfigurieren von Multer in Node.js JS

Die folgenden Schritte können verwendet werden, um Multer in einer Node.js-Anwendung zu erstellen und einzurichten:

Abhängigkeiten installieren

Die Installation von Multer und Express ist der erste Schritt. npm kann dafür verwendet werden:

npm install multer
npm install express

Konfigurieren Sie Multer

Konfigurieren Sie Multer, um Dateiuploads in Ihrer .js-Datei zu bearbeiten. Hier ist eine ausführliche Darstellung:

const express = require('express');
const multer = require('multer');
const path = require('path');
const fs = require('fs');
// Initialize Express
const app = express();
// Set up storage configuration for Multer
const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, 'uploads/'); // Directory to save uploaded files
  },
  filename: (req, file, cb) => {
    const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
    cb(null, file.fieldname + '-' + uniqueSuffix + path.extname(file.originalname)); // Unique filename
  }
});
// Configure file filter function to allow only certain file types
const fileFilter = (req, file, cb) => {
  const allowedFileTypes = /jpeg
jpg
png
gif/;
  const mimetype = allowedFileTypes.test(file.mimetype);
  const extname = allowedFileTypes.test(path.extname(file.originalname).toLowerCase());
  if (mimetype && extname) {
    return cb(null, true);
  } else {
    cb(new Error('Only images are allowed!'));
  }
};
// Initialize Multer with storage, file size limit, and file filter options
const upload = multer({
  storage: storage,
  limits: { fileSize: 1024 * 1024 * 5 }, // 5 MB file size limit
  fileFilter: fileFilter
});
// Single file upload route
app.post('/upload-single', upload.single('profilePic'), (req, res) => {
  try {
    res.send('Single file uploaded successfully');
  } catch (err) {
    res.status(400).send({ error: err.message });
  }
});
// Multiple files upload route
app.post('/upload-multiple', upload.array('photos', 5), (req, res) => {
  try {
    res.send('Multiple files uploaded successfully');
  } catch (err) {
    res.status(400).send({ error: err.message });
  }
});
// Error handling middleware
app.use((err, req, res, next) => {
  if (err) {
    res.status(400).send({ error: err.message });
  }
});
// Start the server
const PORT = process.env.PORT 
 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});
js
JAVASCRIPT

Multer Node.js (Wie es für Entwickler funktioniert): Abbildung 2 - MulterNode.js-Anwendung, die Multer zum Hochladen von Dateien verwendet

Das Speichersystem konfigurieren

destination: Gibt den Ordner an, in dem hochgeladene Dateien gespeichert werden.

Dateiname: Behält die ursprüngliche Dateierweiterung bei und erstellt einen eindeutigen Dateinamen für jede hochgeladene Datei basierend auf dem Zeitstempel und einer Zufallszahl.

Dateifilter: eine Option zur Überprüfung des Dateityps von hochgeladenen Dateien. In diesem Beispiel sind nur Bilddateien mit den Erweiterungen jpeg, jpg, png oder gif zulässig.

Initialisiere Multer:

  • Speicher: Beschreibt die Konfiguration für den Speicher.
  • limits: Definiert die größte zulässige Dateigröße (in diesem Beispiel 5 MB).
  • fileFilter: Verwendet die Funktion eines Dateifilters.

Erste Schritte mit IronPDF

Wenn IronPDF zur Erstellung von PDF-Dokumenten verwendet wird und Multer zur Handhabung von Datei-Uploads, entsteht eine leistungsfähige Lösung zur Verwaltung von nutzergenerierten Inhalten und zur Umwandlung in fertige PDFs. Eine Erklärung, wie man diese beiden Bibliotheken in einer Node.js-Anwendung installiert und kombiniert, finden Sie unten.

Was ist IronPDF?

IronPDF ist ein Satz von Anwendungsbibliotheken, die entwickelt wurden, um die Erstellung, Bearbeitung und Verwaltung von PDF-Dateien zu erleichtern. Mit dieser Anwendung können Entwickler Text und Bilder aus HTML-Dokumenten extrahieren, Kopfzeilen und Wasserzeichen hinzufügen, zahlreiche PDF-Seiten zusammenführen und eine Vielzahl anderer Aufgaben ausführen. Die umfassende Dokumentation und benutzerfreundliche API von IronPDF erleichtern es Entwicklern, automatisch hochwertige PDF-Dokumente zu erstellen. IronPDF umfasst alle Funktionen und Merkmale, die erforderlich sind, um Dokumenten-Workflows zu verbessern und erstklassige Benutzererfahrungen in verschiedenen Szenarien zu bieten, wie zum Beispiel beim Erstellen von Dokumentationen, Berichten und Rechnungen.

Multer Node.js (So funktioniert es für Entwickler): Abbildung 3 - IronPDF for Node.js: Die Node.js PDF-Bibliothek

Merkmale von IronPDF

Eine schnelle und einfache Methode, um mit jeder Art von HTML-Text umzugehen, einschließlich CSS und JavaScript, besteht darin, ihn in PDF zu konvertieren.

PDF-Dateien zusammenführen: Um Dokumentenverwaltungsaufgaben zu erleichtern, kombinieren Sie mehrere PDF-Dokumente in einer einzigen PDF-Datei.

Text- und Bilderextraktion: Extrahieren Sie den Text und die Bilder aus PDF-Dateien, um sie für zusätzliche Datenverarbeitung oder Analyse zu verwenden.

Wasserzeichen: Aus Sicherheits- oder Markenbildungsgründen können Sie Text- oder Bildwasserzeichen zu PDF-Seiten hinzufügen.

Kopf- und Fußzeile einfügen: Die Kopf- und Fußzeilen von PDF-Dokumenten ermöglichen es Ihnen, eine benutzerdefinierte Nachricht oder Seitennummern einzufügen.

IronPDF installieren

Verwenden Sie den Node Package Manager, um die erforderlichen Node.js-Pakete zu installieren, um die IronPDF-Funktionalität zu aktivieren.

npm install @ironsoftware/ironpdf

Integrieren Sie Multer Node.js mit IronPDF

Ändern Sie die Datei app.js, um IronPDF zur Erstellung von PDFs und Multer zur Verwaltung von Datei-Uploads einzurichten.

const express = require('express');
const multer = require('multer');
const path = require('path');
const IronPdf = require("@ironsoftware/ironpdf");
const document=IronPdf.PdfDocument;
var config=IronPdf.IronPdfGlobalConfig
// Initialize Express
const app = express();
// Set up Multer storage configuration
const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, 'uploads/'); // Directory to save uploaded files
  },
  filename: (req, file, cb) => {
    cb(null, `${Date.now()}-${file.originalname}`); // Unique filename
  }
});
const upload = multer({ storage: storage });
// Single file upload route
app.post('/upload-single', upload.single('file'), async (req, res) => {
  try {
    // Read the uploaded file
    const filePath = path.join(__dirname, 'uploads', req.file.filename);
      // Create HTML content for PDF
      const htmlContent = `
        <html>
          <head>
            <title>Uploaded File Content</title>
          </head>
          <body>
            <h1>Uploaded File Content</h1>
            <img src="${filePath}" alt="image" width="500" height="600">
          </body>
        </html>
      `;
    // Initialize IronPDF
    const pdf = await document.fromHtml(htmlContent);
    // Save PDF to file
    const pdfPath = path.join(__dirname, 'uploads', `${Date.now()}-output.pdf`);
    await pdf.saveAs(pdfPath);
    // Respond to the client
    res.send(`File uploaded and PDF generated successfully! <a href="/download-pdf?path=${pdfPath}">Download PDF</a>`);
  } catch (err) {
    res.status(500).send({ error: err.message });
  }
});
// Route to download generated PDF
  app.get('/download-pdf', (req, res) => {
    const filename = req.query.filename;
    const pdfPath = path.join(__dirname, 'uploads', filename);
    res.download(pdfPath);
  });
// Start the server
const PORT = process.env.PORT 
 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});
js
JAVASCRIPT

Wir integrieren Multer und IronPDF in den bereitgestellten Node.js-Code, um ein zuverlässiges System zum Verwalten von Datei-Uploads und Erstellen von PDF-Dokumenten zu entwickeln. Wir konfigurieren Multer mit einer Disk-Speicher-Konfiguration, um Multipart/Form-Data-Datei-Uploads mit dem Express-Framework zu handhaben. Dabei wird jeder hochgeladenen Datei ein eindeutiger Dateiname und ein Zielverzeichnis zugewiesen. Multer speichert Dateien, die von Benutzern über die /upload-single-Route hochgeladen werden, und der Server untersucht den Inhalt dieser Dateien.

Multer Node.js (So funktioniert es für Entwickler): Abbildung 4 - Hochladen von Dateien mit Multer, dann Hinzufügen der hochgeladenen Datei (JPG-Bild) in HTML-Inhalte und Umwandeln in PDF mit IronPDF

Danach wird dieser Inhalt in eine grundlegende HTML-Vorlage integriert. Dieses HTML wird in IronPDF eingespeist, das eine PDF-Datei erstellt, die im Upload-Verzeichnis gespeichert wird. Am Ende wird vom Server ein Link zum Herunterladen des generierten PDFs bereitgestellt. Diese Integration zeigt, wie effektiv Multer Dateiuploads handhaben kann, und IronPDF diese Uploads in hochwertige PDFs konvertiert, um eine reibungslose Dateiverwaltung und Dokumentenerstellung innerhalb einer Node.js-Anwendung zu ermöglichen.

Multer Node.js (Wie es für Entwickler funktioniert): Abbildung 5 - Generierte Ausgabedatei PDF mit IronPDF

Schlussfolgerung

Abschließend wird eine vollständige Lösung zur Organisation von nutzergenerierten Inhalten und deren Umwandlung in ausgearbeitete Dokumente durch die Integration von Multer für Dateiuploads mit IronPDF zur PDF-Erstellung in einer Node.js-Anwendung bereitgestellt. Mit Funktionen wie Größenbeschränkungen, Dateifilterung und Dateispeicherkonfiguration macht Multer das Verwalten von Datei-Uploads einfacher. Auf der anderen Seite bietet IronPDF Anpassungsoptionen und Unterstützung für eine Vielzahl von Stilelementen, was es ermöglicht, HTML-Informationen in hochwertige PDF-Dokumente zu konvertieren.

Diese beiden Bibliotheken können kombiniert werden, um flexible Anwendungen zu erstellen, die es Benutzern ermöglichen, Dateien einzureichen und sie automatisch in ästhetisch ansprechende PDF-Dokumente zu verwandeln. Diese Integration erhöht die Effizienz von Dokumentengenerierungsprozessen und verbessert das Benutzererlebnis, indem sie den Prozess der Erstellung von Rechnungen, Zertifikaten, Berichten und mehr optimiert.

Die Bereitstellung funktionsreicher, hochwertiger Softwarelösungen für Kunden und Endbenutzer ist durch die Integration von IronPDF in Ihren Entwicklungs-Stack für Unternehmensanwendungen einfacher geworden. Darüber hinaus wird diese starke Grundlage Projekte, Backend-Systeme und Prozessverbesserungen erleichtern.

IronPDF.

Erfahren Sie mehr über andere Produkte von Iron Software. Aufgrund ihrer umfangreichen Dokumentation, der lebendigen Online-Entwicklergemeinschaft und der häufigen Überarbeitungen sind diese Technologien eine hervorragende Wahl für zeitgemäße Softwareentwicklungsprojekte.

Darrius Serrant
Full Stack Software Engineer (WebOps)

Darrius Serrant hat einen Bachelor-Abschluss in Informatik von der University of Miami und arbeitet als Full Stack WebOps Marketing Engineer bei Iron Software. Schon in jungen Jahren vom Programmieren angezogen, sah er das Rechnen sowohl als mysteriös als auch zugänglich an, was es zum perfekten Medium für Kreativität und Problemlösung machte.

Bei Iron Software genießt Darrius es, neue Dinge zu erschaffen und komplexe Konzepte zu vereinfachen, um sie verständlicher zu machen. Als einer unserer ansässigen Entwickler hat er sich auch freiwillig gemeldet, um Schüler zu unterrichten und sein Fachwissen mit der nächsten Generation zu teilen.

Für Darrius ist seine Arbeit erfüllend, weil sie geschätzt wird und einen echten Einfluss hat.

< PREVIOUS
Node.js Fetch (Wie es für Entwickler funktioniert)
NÄCHSTES >
uuid NPM (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2025.5 gerade veröffentlicht

Lizenzen anzeigen >