AIDE SUR LES NœUDS

Multer Node.js (Comment ça fonctionne pour les développeurs)

Introduction

La gestion des téléchargements de fichiers et la production de documents PDF sont des exigences standard pour de nombreuses applications dans le paysage actuel du développement en ligne. Résumer les capacités d'IronPDF et de Multer dans un environnement Node.js aboutit à une solution solide pour gérer efficacement ces exigences.

Multer est un middleware Node.js qui facilite la gestion du multipart/form-data—principalement utilisé pour les téléchargements de fichiers. En raison de sa grande flexibilité, les développeurs peuvent spécifier des restrictions de taille de fichier, des options de stockage et un filtrage des fichiers pour garantir des téléchargements de fichiers sûrs et efficaces. Multer est une option privilégiée pour les développeurs souhaitant intégrer facilement des fonctionnalités de téléchargement de fichiers dans leurs applications en raison de la simplicité d'intégration avec Express.js.

Inversement, IronPDF est une puissante bibliothèque de création de PDF qui permet aux programmeurs de créer des documents PDF en utilisant du texte HTML. Avec ses nombreuses capacités, y compris la prise en charge de l'exécution JavaScript, le stylage CSS, et l'intégration de polices et d'images, c'est l'outil parfait pour transformer des informations web dynamiques en PDF à l'aspect professionnel.

Nous allons démontrer la coopération harmonieuse entre ces deux outils puissants en passant en revue comment configurer et utiliser IronPDF pour créer des documents PDF et Multer pour gérer les téléchargements de fichiers dans une application Node.js.

Qu'est-ce que Multer Node.js ?

Multer est un middleware Node.js qui facilite la gestion des multipart/form-data, principalement utilisé pour le téléversement de fichiers. Il offre une méthode fiable pour gérer les fonctionnalités de téléchargement de fichiers dans les applications web et s'interface facilement avec Express.js. Pour s'assurer que seuls les types de fichiers autorisés sont téléchargés, Multer offre aux développeurs la possibilité de spécifier des restrictions de taille de fichier, de configurer des options de stockage et d'appliquer un filtrage de fichiers.

Il offre au serveur la flexibilité dans la gestion des fichiers en prenant en charge à la fois le stockage sur disque et en mémoire. Multer est également parfait pour les formulaires nécessitant la soumission de nombreux fichiers en même temps, car il peut gérer plusieurs fichiers téléchargés simultanément. Tout bien considéré, Multer simplifie le processus de téléchargement de fichiers, améliorant la capacité des applications Node.js à gérer de manière sécurisée et efficace le matériel téléchargé par les utilisateurs.

Multer Node.js (Comment ça fonctionne pour les développeurs) : Figure 1 - Multer Node.js

Fonctionnalités de Multer pour Node.js

Options de stockage de fichiers

  • Multer a la capacité de stocker les fichiers téléchargés directement sur disque. Le moteur de stockage sur disque vous permet de fournir le nom de fichier et le répertoire de destination. C'est particulièrement utile pour les programmes qui nécessitent que les fichiers soient sauvegardés pour une utilisation future.
  • Stockage en mémoire : Multer a la capacité de stocker des fichiers en mémoire sous forme d'objets buffer pour une utilisation temporaire. Ceci est utile dans les situations où les fichiers n'ont pas besoin d'être conservés sur le disque et peuvent être traités immédiatement.

Limites de taille des fichiers

Les limitations de taille que Multer vous permet de définir pour les fichiers téléchargés peuvent aider à protéger les performances du serveur et à gérer efficacement les ressources de stockage en empêchant le téléchargement de fichiers trop volumineux. Vous pouvez utiliser l'option des limitations pour accomplir cela.

Filtrage de fichiers

Multer dispose d'une option fileFilter qui vous permet de gérer quels fichiers sont acceptés. Les fichiers qui ne correspondent pas aux exigences peuvent être rejetés par cette fonction, qui peut également vérifier le type MIME du fichier et d'autres attributs. Cela garantit que seuls certains types de fichiers, tels que les documents et les images, sont soumis.

Gestion de plusieurs fichiers

Multer peut gérer plusieurs fichiers téléchargés simultanément. Les routes peuvent être configurées pour accepter plusieurs champs contenant des fichiers ou des tableaux de fichiers. Cela est utile pour les formulaires lorsque les utilisateurs doivent télécharger plusieurs fichiers à la fois, tels que des documents justificatifs et des images de profil.

Moteurs de stockage personnalisables

Multer vous permet de concevoir de nouveaux moteurs de stockage en plus des solutions de stockage sur disque et en mémoire intégrées. Pour une flexibilité optimale, vous pouvez créer votre propre logique pour gérer les téléchargements de fichiers, y compris où et comment les fichiers sont enregistrés.

Intégration facile avec Express

Multer est conçu pour s'intégrer facilement avec Express.js. Il est simple d'ajouter la capacité de téléchargement de fichiers à vos applications web en l'utilisant comme middleware dans vos routes Express.

Gestion automatique des données multiparties

En analysant automatiquement les données multipart/form-data, Multer simplifie le processus de gestion des téléchargements de fichiers dans votre code côté serveur en rendant les fichiers téléchargés et les données du formulaire disponibles sur l'objet req.

Téléchargements de fichier unique et multiple

Multer propose plusieurs méthodes (single, array et fields) pour gérer les téléchargements d'un ou plusieurs fichiers. La méthode simple traite un fichier par requête, la méthode tableau prend en charge plusieurs fichiers avec le même nom de champ, et la méthode champs peut gérer de nombreux fichiers avec des noms de champ différents.

Créer et configurer Multer Node.js JS

Les étapes ci-dessous peuvent être utilisées pour construire et configurer Multer dans une application Node.js :

Installer les dépendances

La première étape consiste à installer Multer et Express. npm peut être utilisé pour cela :

npm install multer
npm install express

Configurer Multer

Configurez Multer pour gérer les téléchargements de fichiers dans votre fichier .js. Voici une illustration détaillée :

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 (Comment cela fonctionne pour les développeurs) : Figure 2 - Application MulterNode.js utilisant Multer pour télécharger des fichiers

Configurer le système de stockage

destination : Indique le dossier dans lequel les fichiers téléchargés seront stockés.

filename : Conserve l'extension de fichier d'origine tout en créant un nom de fichier unique pour chaque fichier téléchargé basé sur l'horodatage et un nombre aléatoire.

Filtre de fichier : une option pour vérifier le type de fichier des fichiers qui sont téléchargés. Seuls les fichiers image avec les extensions jpeg, jpg, png ou gif sont autorisés dans cet exemple.

Initialiser Multer :

  • stockage : Décrit la configuration du stockage.
  • limites : Définit la taille maximale de fichier autorisée (5 Mo dans cet exemple).
  • fileFilter : Utilise la fonction d'un filtre de fichiers.

Premiers pas avec IronPDF

Lorsque IronPDF est utilisé pour créer des documents PDF et que Multer est utilisé pour gérer les téléchargements de fichiers, une solution puissante pour gérer le contenu généré par les utilisateurs et le transformer en PDF soignés est créée. Une explication sur la façon d'installer et de combiner ces deux bibliothèques dans une application Node.js peut être trouvée ci-dessous.

Qu'est-ce qu'IronPDF ?

IronPDF est un ensemble de bibliothèques d'applications conçues pour faciliter la création, l'édition et la gestion des fichiers PDF. Avec cette application, les développeurs peuvent extraire du texte et des images à partir de documents HTML, ajouter des en-têtes et des filigranes, fusionner de nombreuses pages PDF, et effectuer une variété d'autres activités. La documentation complète d'IronPDF et son API conviviale permettent aux développeurs de générer automatiquement des documents PDF de haute qualité. IronPDF comprend toutes les fonctionnalités nécessaires pour améliorer les flux de travail des documents et offrir des expériences utilisateur de premier ordre dans une variété de scénarios, tels que la création de documentation, de rapports et de factures.

Multer Node.js (Comment cela fonctionne pour les développeurs) : Figure 3 - IronPDF for Node.js : La bibliothèque PDF pour Node.js

Caractéristiques d'IronPDF

Une méthode rapide et simple pour traiter tout type de texte HTML, y compris le CSS et le JavaScript, est de le convertir en PDF.

Fusion de fichiers PDF : Pour simplifier les tâches de gestion de documents, combinez plusieurs documents PDF en un seul fichier PDF.

Extraction de texte et d'image : Extraire le texte et les images des fichiers PDF afin de les utiliser pour un traitement ou une analyse de données supplémentaires.

Filigrane : Pour des raisons de sécurité ou de marque, vous pouvez ajouter des filigranes de texte ou d'image aux pages PDF.

Inclure l'entête et le pied de page : Les entêtes et pieds de page des documents PDF permettent d'inclure un message personnalisé ou des numéros de page.

Installer IronPDF

Utilisez le gestionnaire de paquets Node pour installer les paquets Node.js nécessaires afin d'activer la fonctionnalité d'IronPDF.

npm install @ironsoftware/ironpdf

Intégrer Multer Node.js avec IronPDF

Modifiez app.js pour configurer IronPDF afin de créer des PDF et Multer pour gérer les téléchargements de fichiers.

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

Nous intégrons Multer et IronPDF dans le code Node.js fourni pour créer un système fiable de gestion des téléchargements de fichiers et de production de documents PDF. Nous configurons Multer avec une configuration de stockage sur disque pour gérer les téléchargements de fichiers multipart/form-data en utilisant le framework Express, en attribuant à chaque fichier téléchargé un nom de fichier unique et un répertoire de destination. Multer enregistre les fichiers téléchargés par les utilisateurs via la route /upload-single, et le serveur examine le contenu de ces fichiers.

Multer Node.js (Comment ça fonctionne pour les développeurs) : Figure 4 - Téléchargement de fichiers en utilisant Multer, puis ajout du fichier téléchargé (image .jpg) dans le contenu HTML, et conversion en PDF avec IronPDF

Après cela, ce contenu est intégré dans un modèle HTML de base. Cet HTML est transmis à IronPDF, qui crée un fichier PDF qui est stocké dans le répertoire des téléchargements. À la fin, un lien pour télécharger le PDF généré est fourni par le serveur. Cette intégration démontre à quel point Multer peut gérer efficacement les téléchargements de fichiers, et comment IronPDF convertit ces téléchargements en PDF de haute qualité pour offrir une gestion de fichiers fluide et une création de documents au sein d'une application Node.js.

Multer Node.js (Comment cela fonctionne pour les développeurs) : Figure 5 - PDF généré à l'aide de IronPDF

Conclusion

En conclusion, une solution complète pour organiser le contenu généré par les utilisateurs et le transformer en documents soignés est fournie en intégrant Multer pour le téléchargement de fichiers avec IronPDF pour la génération de PDF dans une application Node.js. Avec des fonctionnalités telles que les limitations de taille, le filtrage des fichiers et la configuration du stockage des fichiers, Multer facilite la gestion des téléchargements de fichiers. D'autre part, IronPDF offre des choix de personnalisation et supporte une variété d'éléments de style, rendant possible de convertir des informations HTML en documents PDF de haute qualité.

Ces deux bibliothèques peuvent être combinées pour créer des applications flexibles permettant aux utilisateurs de soumettre des fichiers et de les transformer automatiquement en documents PDF esthétiques. Cette intégration augmente l'efficacité des opérations de génération de documents et améliore l'expérience utilisateur en rationalisant le processus de génération de factures, certifications, rapports, et plus encore.

Fournir des solutions logicielles premium et riches en fonctionnalités pour les clients et les utilisateurs finaux est devenu plus facile en intégrant IronPDF dans votre pile de développement d'applications d'entreprise. En outre, cette base solide facilitera les projets, les systèmes backend et l'amélioration des processus.

IronPDF.

En savoir plus sur les autres produits Iron Software. En raison de leur riche documentation, de leur communauté de développeurs en ligne dynamique et de leurs révisions fréquentes, ces technologies sont un excellent choix pour les projets de développement logiciel contemporains.

Darrius Serrant
Ingénieur Logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'une licence en informatique de l'Université de Miami et travaille en tant qu'ingénieur marketing Full Stack WebOps chez Iron Software. Attiré par le code depuis son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le support parfait pour la créativité et la résolution de problèmes.

Chez Iron Software, Darrius apprécie de créer de nouvelles choses et de simplifier des concepts complexes pour les rendre plus compréhensibles. En tant que l'un de nos développeurs résidents, il a également fait du bénévolat pour enseigner aux étudiants, partageant son expertise avec la prochaine génération.

Pour Darrius, son travail est épanouissant car il est apprécié et a un réel impact.

< PRÉCÉDENT
Node.js Fetch (Comment cela fonctionne pour les développeurs)
SUIVANT >
uuid NPM (Comment ça marche pour les développeurs)