ホームページ >ウェブフロントエンド >フロントエンドQ&A >ノードにおけるマルターとは何を意味しますか?

ノードにおけるマルターとは何を意味しますか?

WBOY
WBOYオリジナル
2022-04-15 15:57:252794ブラウズ

ノードでは、multer は「multipart/form-data」タイプのデータ形式を処理するために使用されるミドルウェアであり、主にファイルのアップロードに使用されます。リクエスト本文を解析した後、ミドルウェアはリクエスト オブジェクトにメッセージを送信します。本文オブジェクトとファイル オブジェクト。

ノードにおけるマルターとは何を意味しますか?

この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。

node における multer の意味

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。