express中間件multer的使用記錄

前言

由于項目中需要一個文件上傳和下載的功能券册,就去找了很多資料盒粮,github上multer也是star數(shù)十分的高疟丙,于是就研究了一下,寫了個demo記錄下來以便日后使用重窟。對于multer感興趣的同學可自行github载萌,其中中文文檔官方說是有可能更新不及時,還是看英文文檔來得靠譜巡扇,另外youtube上也有許多可供學習的視頻扭仁,自行尋找。

正文

根據(jù)自己使用下來的經(jīng)驗multer提供了一下幾個重要和常用的功能:

  1. 完成文件上傳路徑設定
  2. 完成上傳后的文件名的命名
  3. 使用過程中可自定義可上傳的文件類型
  4. 限制上傳文件的大小

基本上我在使用中需要用到的功能就是以上四點了厅翔,接下來講講到底如何使用multer乖坠。
使用有一下幾個步驟:

  1. 獲取multer引用
  2. 配置multer,包括對存儲位置的配置和文件名稱的配置
  3. 作為中間件在路由中使用
    代碼如下:
const multer = require('multer') // 獲取引用

// 設置上傳組件的參數(shù)
const storage = multer.diskStorage({
  destination: config.uploadPath, // 上傳的文件位置(自定義)
  filename: function (req, file, cb) {
    cb(null, file.originalname + '-' + Date.now() + path.extname(file.originalname)) // 保存的名字(這里只是簡單的加上時間戳)
  }
})

// 將配置應用到multer上
// .array('file')表示可以接受前端同時上傳多個文件刀闷,而其中的'file'表示前端form中上傳的input的name
const upload = multer({
  storage: storage
}).array('file')  

// 作為中間件使用
app.use('/api/upload', (req, res, next) => {
  upload(req, res, (err) => {
    if (err) {
      return next(err)
    }
    else {
      next()
    }
  })
}, (req, res, next) => {
  console.log(req.files)
  res.send('success')
})

使用方法如代碼所示熊泵,并沒有如文檔中說的在全局配置中間件的原因純粹是因為沒必要,只有這個路由需要上傳就只在這個路由使用中間件就好了甸昏。
其中又遇到一個點顽分,我是使用element-ui中的上傳組件,并不知道name是什么筒扒,不過也好解決怯邪,看看請求頭附帶的信息知道了name應該是file所以就.arry('file'),明天再看看是否可以自己設置name屬性花墩。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悬秉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冰蘑,更是在濱河造成了極大的恐慌和泌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祠肥,死亡現(xiàn)場離奇詭異武氓,居然都是意外死亡,警方通過查閱死者的電腦和手機仇箱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門县恕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人剂桥,你說我怎么就攤上這事忠烛。” “怎么了权逗?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵美尸,是天一觀的道長冤议。 經(jīng)常有香客問我,道長师坎,這世上最難降的妖魔是什么恕酸? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮胯陋,結(jié)果婚禮上蕊温,老公的妹妹穿的比我還像新娘。我一直安慰自己遏乔,他們只是感情好寿弱,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著按灶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪筐咧。 梳的紋絲不亂的頭發(fā)上鸯旁,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音量蕊,去河邊找鬼铺罢。 笑死,一個胖子當著我的面吹牛残炮,可吹牛的內(nèi)容都是我干的韭赘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼势就,長吁一口氣:“原來是場噩夢啊……” “哼泉瞻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苞冯,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤袖牙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后舅锄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞭达,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年皇忿,在試婚紗的時候發(fā)現(xiàn)自己被綠了畴蹭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡鳍烁,死狀恐怖叨襟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情老翘,我是刑警寧澤芹啥,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布锻离,位于F島的核電站,受9級特大地震影響墓怀,放射性物質(zhì)發(fā)生泄漏汽纠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一傀履、第九天 我趴在偏房一處隱蔽的房頂上張望虱朵。 院中可真熱鬧,春花似錦钓账、人聲如沸碴犬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽服协。三九已至,卻和暖如春啦粹,著一層夾襖步出監(jiān)牢的瞬間偿荷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工唠椭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跳纳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓贪嫂,卻偏偏與公主長得像寺庄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子力崇,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容