bij het bouwen van API ’s wordt de noodzaak verwacht om bestanden te uploaden, wat onder andere afbeeldingen, tekstdocumenten, scripts, PDF’ s kan zijn. Bij de ontwikkeling van deze functionaliteit kunnen enkele problemen worden gevonden, zoals het aantal bestanden, geldige bestandstypen, groottes van deze bestanden en verschillende anderen. En om ons van deze problemen te redden hebben we de Multer bibliotheek. Multer is een knoop.js middleware voor het verwerken van multipart/form-data dat wordt gebruikt om bestanden in formulieren te verzenden.

eerste stappen

de eerste stap is het maken van een NodeJS-project op uw computer.

Express

toevoegen in uw terminal typt u het volgende commando:

yarn add express

* u kunt NPM ook gebruiken voor installatie

Maak een bestand met de naam app.js in de map src/. De volgende stap is om onze Express server te starten in onze app.js

const express = require("express")const app = express()app.listen(3000 || process.env.PORT, () => { console.log("Server on...")})

toevoegen Multer

met het project aangemaakt, geconfigureerd en met Express geà nstalleerd, zullen we de multer toevoegen aan ons project.

yarn add multer

de volgende stap is het importeren van de multer in ons app.js bestand.

const multer = require("multer")

we zijn er bijna. Maak nu een map genaamd uploads waar we de geüploade bestanden zullen opslaan.

configureren en valideren van de upload

nu bevinden we ons in een zeer belangrijke fase, namelijk de configuratie van diskStorage. DiskStorage is een methode die beschikbaar wordt gesteld door multer waarbij we de bestemming van het bestand, de naam van het bestand configureren en we ook validaties kunnen toevoegen met betrekking tot het type bestand. Deze instellingen zijn volgens de behoeften van uw project. Hieronder laat ik een elementair voorbeeld van de configuratie.

const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, "uploads/") }, filename: (req, file, cb) => { cb(null, Date.now() + "-" + file.originalname) },})

in de configuratie hierboven hebben we de bestemming van de geüploade bestanden genoemd en ook de naam van het bestand gewijzigd .

een uploadroute

const uploadStorage = multer({ storage: storage })// Single fileapp.post("/upload/single", uploadStorage.single("file"), (req, res) => { console.log(req.file) return res.send("Single file")})//Multiple filesapp.post("/upload/multiple", uploadStorage.array("file", 10), (req, res) => { console.log(req.files) return res.send("Multiple files")})

in het codefragment hierboven hebben we 2 postroutes gemaakt voor het verzenden van bestanden. De eerste /upload/single route ontvangt slechts een enkel bestand, merk op dat de uploadstorage variabele onze diskStorage instellingen ontvangt. Als middleware in de route roept het de single methode aan voor het uploaden van een enkel bestand. De /upload/multiple route ontvangt meerdere bestanden, maar met een maximale limiet van 10 bestanden, merk op dat de uploadstorage variabele nu de` array ‘ methode voor het uploaden van meerdere bestanden aanroept.

het einde

met alle instellingen gedaan, Onze kleine API is al in staat om de verzonden bestanden op te slaan.

const express = require("express")const multer = require("multer")const app = express()const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, "uploads/") }, filename: (req, file, cb) => { cb(null, Date.now() + "-" + file.originalname) },})const uploadStorage = multer({ storage: storage })// Single fileapp.post("/upload/single", uploadStorage.single("file"), (req, res) => { console.log(req.file) return res.send("Single file")})//Multiple filesapp.post("/upload/multiple", uploadStorage.array("file", 10), (req, res) => { console.log(req.files) return res.send("Multiple files")})app.listen(3000 || process.env.PORT, () => { console.log("Server on...")})

nu is het aan jou!

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.