ノードでは、multer は「multipart/form-data」タイプのデータ形式を処理するために使用されるミドルウェアであり、主にファイルのアップロードに使用されます。リクエスト本文を解析した後、ミドルウェアはリクエスト オブジェクトにメッセージを送信します。本文オブジェクトとファイル オブジェクト。
この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。
Multer は、multipart/form-data タイプのフォーム データを処理するために使用される、node.js ミドルウェアであり、主にファイルをアップロードするために使用されます。これはバスボーイの上に書かれており、非常に効率的です。
注: Multer は、非マルチパート/フォームデータ型のフォーム データを処理しません。
リクエスト本文を解析した後、Multer は本文オブジェクトとファイルを Request オブジェクトに追加します。 . files オブジェクト (複数のファイルをアップロードする場合は files オブジェクトを使用します)。
本文オブジェクトには、送信されたフォーム (存在する場合) のテキスト フィールドが含まれ、ファイル オブジェクトには、フォームを通じてアップロードされたファイルが含まれます。
ヒント: multipart/form-data は、送信する特別なタイプのデータ、主に写真や MP3 など、アップロードする非テキスト コンテンツを指定するために使用されます。
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 はオプション オブジェクトを受け入れます。その最も基本的なものは dest 属性で、アップロードされたファイルの保存場所を Multer に指示します。オプション オブジェクトを省略した場合、これらのファイルはメモリ内に保持され、ディスクには書き込まれません。
通常、一般的な Web アプリケーションの場合、次のように dest 属性を設定するだけで済みます。
const upload = multer({ dest: 'uploads/' })
アップロード時にさらに制御したい場合は、dest の代わりに storage オプションを使用できます。 Multer には、DiskStorage と MemoryStorage という 2 つのストレージ エンジンがあり、サードパーティからはさらに多くのエンジンが入手可能です。
推奨学習: 「nodejs ビデオ チュートリアル 」
以上がノードにおけるマルターとは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。