ExpressJS est un framework minimaliste et flexible pour Node.js qui fournit un ensemble robuste de fonctionnalités pour la création d'applications Web et mobiles. L'une des fonctionnalités les plus puissantes offertes par ExpressJS est la possibilité de définir et d'utiliser des itinéraires. Dans ce chapitre, nous nous concentrerons sur la façon de travailler avec les téléchargements de fichiers dans les routes à l'aide d'ExpressJS.
Travailler avec les téléchargements de fichiers est une tâche courante dans les applications Web. Qu'il s'agisse de permettre aux utilisateurs de télécharger des photos de profil, des documents ou tout autre type de fichier, vous devrez à un moment donné gérer les téléchargements de fichiers. Heureusement, ExpressJS rend cela relativement simple.
Configuration du middleware
Avant de pouvoir commencer à accepter les téléchargements de fichiers, nous devons configurer un middleware pour les traiter. Le middleware est une fonction qui a accès à l'objet de requête (req), à l'objet de réponse (res) et à la fonction middleware suivante dans le cycle requête/réponse de l'application.
Pour gérer les téléchargements de fichiers, nous allons utiliser un package appelé 'multer'. Multer est un middleware node.js pour gérer les « multipart/form-data » qui sont utilisés pour le téléchargement de fichiers. Il est très simple à utiliser et bien documenté. Pour commencer, vous devez l'installer dans votre projet :
Une fois installé, vous pouvez le demander dans votre application et configurer un emplacement pour stocker les fichiers téléchargés :
Ici, nous demandons à Multer de stocker les fichiers téléchargés dans le dossier « téléchargements » de notre répertoire racine.
Définir l'itinéraire
Une fois Multer configuré, nous pouvons désormais définir une route pour accepter les téléchargements de fichiers. Définissons une route POST dans '/upload' qui accepte un seul fichier :
Dans l'itinéraire ci-dessus, 'upload.single('file')' est un middleware qui traite le téléchargement. « fichier » est le nom du champ du formulaire qui contient le fichier. La fonction de rappel est appelée une fois le fichier chargé avec succès.
Travailler avec des fichiers téléchargés
Une fois qu'un fichier est téléchargé, vous pouvez accéder aux données du fichier via l'objet 'req.file'. Cet objet contient des informations utiles telles que le nom du fichier d'origine, le nom du fichier sur le serveur, le type de fichier et la taille du fichier.
Vous pouvez utiliser ces informations pour valider le fichier, le renommer, le déplacer ou faire tout ce dont vous avez besoin. Voici un exemple de la façon dont vous pouvez renommer le fichier à l'aide du module 'fs' de Node.js :
Dans cet exemple, nous renommeons le fichier avec son nom d'origine. S'il y a une erreur en renommant le fichier, nous envoyons un message d'erreur. Sinon, nous envoyons un message de réussite.
Conclusion
Travailler avec les téléchargements de fichiers dans ExpressJS est simple et direct. Avec le middleware Multer, vous pouvez facilement accepter les téléchargements de fichiers, accéder aux informations sur les fichiers téléchargés et manipuler ces fichiers selon vos besoins. Ceci n'est qu'un exemple simple de ce que vous pouvez faire avec les téléchargements de fichiers dans ExpressJS. La capacité d'accepter et de traiter les téléchargements de fichiers est une compétence essentielle pour tout développeur Web et n'est que l'une des nombreuses fonctionnalités puissantes offertes par ExpressJS.