>  기사  >  웹 프론트엔드  >  노드에서 multer는 무엇을 의미합니까?

노드에서 multer는 무엇을 의미합니까?

WBOY
WBOY원래의
2022-04-15 15:57:252733검색

노드에서 multer는 "multipart/form-data" 유형의 데이터 형식을 처리하는 데 사용되는 미들웨어로, 주로 파일 업로드에 사용되며 요청 본문을 구문 분석한 후 미들웨어는 요청 개체 객체에 본문을 추가합니다. 파일 객체.

노드에서 multer는 무엇을 의미합니까?

이 문서의 운영 환경: Windows 10 시스템, nodejs 버전 12.19.0, Dell G3 컴퓨터.

노드에서 multer는 무엇을 의미하나요?

Multer는 node.js 미들웨어로, multipart/form-data 형식의 폼 데이터를 처리하는 데 사용됩니다. 주로 파일을 업로드하는 데 사용됩니다. 버스보이 위에 쓰여져 있어 매우 효율적입니다.

참고: Multer는 다중 부분/양식 데이터 유형이 아닌 양식 데이터를 처리하지 않습니다.

요청 본문을 구문 분석한 후 Multer는 본문 개체와 파일 개체를 요청 개체에 추가합니다( 파일 객체).

그 중 body 개체에는 제출된 양식(있는 경우)의 텍스트 필드가 포함되고, 파일(또는 파일) 개체에는 양식을 통해 업로드된 파일이 포함됩니다.

팁: 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(옵션)

Multer는 하나의 옵션 객체를 허용하며, 그 중 가장 기본적인 것은 업로드된 파일을 저장할 위치를 Multer에게 알려주는 dest 속성입니다. 옵션 개체를 생략하면 이러한 파일은 메모리에 보관되며 디스크에 기록되지 않습니다.

일반적으로 일반 웹 애플리케이션의 경우 다음과 같이 dest 속성만 설정하면 됩니다.

const upload = multer({ dest: 'uploads/' })

업로드 시 더 많은 제어를 원할 경우 dest 대신 저장소 옵션을 사용할 수 있습니다. Multer에는 DiskStorage와 MemoryStorage라는 두 가지 스토리지 엔진이 있습니다. 타사에서 더 많은 엔진을 사용할 수 있습니다.

추천 학습: "nodejs 비디오 튜토리얼"

위 내용은 노드에서 multer는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.