API-k készítésekor várhatóan fájlokat kell feltölteni, amelyek lehetnek többek között képek, szöveges dokumentumok, szkriptek, PDF-ek. Ennek a funkciónak a fejlesztése során néhány probléma megtalálható, például a fájlok száma, az érvényes fájltípusok, ezeknek a fájloknak a mérete és még sokan mások. És hogy megmentsen minket ezektől a problémáktól, megvan a Multer könyvtár. A Multer egy csomópont.js köztes szoftver multipart/form-data kezelésére, amelyet fájlok űrlapokban történő küldésére használnak.

első lépések

az első lépés egy nodejs projekt létrehozása a számítógépen.

az Express

hozzáadása a terminálba írja be a következő parancsot:

yarn add express

* az NPM-et a

telepítéshez is használhatja a app.js nevű fájl létrehozása a src/ mappában. A következő lépés az expressz szerverünk elindítása a app.js

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

Multer

hozzáadása a létrehozott, konfigurált és az Express telepítésével a multer hozzáadódik a projektünkhöz.

yarn add multer

a következő lépés a multer importálása a app.js fájlba.

const multer = require("multer")

már majdnem ott vagyunk. Most hozzon létre egy uploads nevű mappát, ahol a feltöltött fájlokat tároljuk.

a feltöltés konfigurálása és érvényesítése

most egy nagyon fontos szakaszban vagyunk, amely a diskStorage konfigurálása. A DiskStorage egy multer által elérhetővé tett módszer, ahol konfiguráljuk a fájl rendeltetési helyét, a fájl nevét, és hozzáadhatunk érvényesítéseket a fájl típusára vonatkozóan. Ezek a beállítások a projekt igényeinek megfelelően vannak. Az alábbiakban egy elemi példát hagyok a konfigurációról.

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

a fenti konfigurációban megemlítettük a feltöltött fájlok rendeltetési helyét, valamint megváltoztattuk a fájl nevét .

feltöltési útvonal biztosítása

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

a fenti kódrészletben 2 POST útvonalat hoztunk létre a fájlok küldéséhez. Az első /upload/single útvonal csak egyetlen fájlt kap, vegye figyelembe, hogy az uploadStorage változó megkapja a diskStorage beállításokat. Az útvonal köztes szoftvereként a single módszert hívja egyetlen fájl feltöltésére. A /upload/multiple útvonal több fájlt fogad, de legfeljebb 10 Fájl korlátozásával vegye figyelembe, hogy az uploadStorage változó most meghívja az` Array ‘ módszert több fájl feltöltésére.

vége

az összes beállítás elvégzésével a kis API már képes tárolni az elküldött fájlokat.

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...")})

Most rajtad múlik!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.