Im Knoten ist Multer eine Middleware, die zum Verarbeiten des Datenformats „Multipart/Formulardaten“ verwendet wird und hauptsächlich zum Hochladen von Dateien verwendet wird Dateien-Objekt.
Die Betriebsumgebung dieses Artikels: Windows 10-System, NodeJS-Version 12.19.0, Dell G3-Computer.
Multer ist eine node.js-Middleware, die zur Verarbeitung von Formulardaten vom Typ Multipart/Formulardaten verwendet wird. Sie wird hauptsächlich zum Hochladen von Dateien verwendet. Es ist oben auf dem Busboy geschrieben und sehr effizient.
Hinweis: Multer verarbeitet keine Formulardaten, die nicht vom Multipart-/Formulardatentyp sind.
Nach dem Parsen des Anforderungstexts fügt Multer dem Anforderungsobjekt ein Textobjekt und eine Datei oder ein Dateiobjekt hinzu (beim Hochladen mehrerer Dateien mit Dateien-Objekt).
Davon enthält das Body-Objekt die Textfelder im übermittelten Formular (falls vorhanden) und das Dateiobjekt (oder die Dateien) enthält die über das Formular hochgeladenen Dateien.
Tipps: Multipart/form-data wird verwendet, um die spezielle Art der zu übertragenden Daten anzugeben, hauptsächlich die von uns hochgeladenen Nicht-Text-Inhalte, wie Bilder oder MP3 usw.
const express = require('express') const multer = require('multer') const app = express() const storage = multer.diskStorage({ //保存路径 destination: function (req, file, cb) { cb(null, '/tmp/my-uploads') //注意这里的文件路径,不是相对路径,直接填写从项目根路径开始写就行了 }, //保存在 destination 中的文件名 filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now()) } }) const upload = multer({ storage: storage }) app.post('/profile', upload.single('avatar'), function (req, res, next) { // req.file 是 `avatar` 文件的信息 // req.body 将具有文本域数据,如果存在的话 }) app.post('/photos/upload', upload.array('photos', 12), function (req, res, next) { // req.files 是 `photos` 文件数组的信息 // req.body 将具有文本域数据,如果存在的话 }) const cpUpload = upload.fields([{ name: 'avatar', maxCount: 1 }, { name: 'gallery', maxCount: 8 }]) app.post('/cool-profile', cpUpload, function (req, res, next) { // req.files 是一个对象 (String -> Array) 键是文件名,值是文件数组 // 例如: // req.files['avatar'][0] -> File // req.files['gallery'] -> Array // req.body 将具有文本域数据,如果存在的话 })
multer(Optionen)
Multer akzeptiert ein Optionsobjekt, dessen grundlegendstes das Attribut „dest“ ist, das Multer mitteilt, wo die hochgeladene Datei gespeichert werden soll. Wenn Sie das Optionsobjekt weglassen, bleiben diese Dateien im Speicher und werden nie auf die Festplatte geschrieben.
Normalerweise müssen Sie für allgemeine Webanwendungen nur das Zielattribut festlegen, etwa so:
const upload = multer({ dest: 'uploads/' })
Wenn Sie beim Hochladen mehr Kontrolle wünschen, können Sie die Speicheroption anstelle von dest verwenden. Multer verfügt über zwei Speicher-Engines: DiskStorage und MemoryStorage; weitere Engines sind von Drittanbietern erhältlich.
Empfohlenes Lernen: „nodejs-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas bedeutet Multer in Knoten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!