Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Apakah maksud multer dalam nod?
Dalam nod, multer ialah middleware yang digunakan untuk memproses format data jenis "multipart/form-data", terutamanya digunakan untuk memuat naik fail selepas menghuraikan badan permintaan, middleware akan menghantar mesej kepada objek Request Tambahkan objek badan dan fail atau objek fail.
Persekitaran pengendalian artikel ini: sistem Windows 10, nodejs versi 12.19.0, komputer Dell G3.
Multer ialah perisian tengah node.js yang digunakan untuk memproses data borang berbilang bahagian/jenis data Ia digunakan terutamanya untuk memuat naik fail. Ia ditulis di atas busboy dan sangat cekap.
Nota: Multer tidak akan memproses sebarang data borang bukan berbilang/jenis data
Selepas menghuraikan kandungan permintaan, Multer akan menambah objek badan dan fail atau fail pada objek Permintaan . fail objek (gunakan objek fail apabila memuat naik berbilang fail).
Antaranya, objek badan mengandungi medan teks dalam borang yang diserahkan (jika ada), dan objek fail (atau fail) mengandungi fail yang dimuat naik melalui borang.
Petua: data berbilang bahagian/bentuk digunakan untuk menentukan jenis data khas yang akan dihantar, terutamanya kandungan bukan teks yang kami muat naik, seperti gambar atau mp3, dsb.
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(options)
Multer menerima objek pilihan, yang paling asas ialah atribut dest, yang akan memberitahu Multer tempat untuk menyimpan fail yang dimuat naik. Jika anda meninggalkan objek pilihan, fail ini akan disimpan dalam ingatan dan tidak pernah ditulis ke cakera.
Biasanya, untuk aplikasi web umum, anda hanya perlu menetapkan atribut dest, seperti ini:
const upload = multer({ dest: 'uploads/' })
Jika anda mahukan lebih kawalan semasa memuat naik, anda boleh menggunakan pilihan storan dan bukannya dest . Multer mempunyai dua enjin storan: DiskStorage dan MemoryStorage lebih banyak enjin tersedia daripada pihak ketiga.
Pembelajaran yang disyorkan: "tutorial video nodejs"
Atas ialah kandungan terperinci Apakah maksud multer dalam nod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!