Heim > Web-Frontend > Front-End-Fragen und Antworten > Was bedeutet Multer in Knoten?

Was bedeutet Multer in Knoten?

WBOY
Freigeben: 2022-04-15 15:57:25
Original
2771 Leute haben es durchsucht

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.

Was bedeutet Multer in Knoten?

Die Betriebsumgebung dieses Artikels: Windows 10-System, NodeJS-Version 12.19.0, Dell G3-Computer.

Was bedeutet Multer in Node?

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 将具有文本域数据,如果存在的话
})
Nach dem Login kopieren

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/' })
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage