express使用multer實作檔案上傳功能
在express架構中想要實作檔案上傳功能,可以使用multer中間件,該文章教大家具體怎麼配置和使用
- 使用之前首先安裝
multer
npm install multer --save
- 在定義路由前引入
const multer = require('multer')
- 設定 dest 屬性(設定上傳檔案後儲存的位置)
const upload = multer({dest: __dirname + '/../../uploads'})
- 在路由中間件使用它
app.post('/admin/api/upload', upload.single('file'), async (req, res) => {
const file = req.file
// 因為原本multer沒有傳回完整的檔案連結,是以我們這裡把完整的檔案連結拼接傳回
file.url = `http://localhost:3000/uploads/${file.filename}`
res.send(file)
})
- 要想前端通過連結能通路到該檔案,需要在express的index裡配置
app.use('/uploads', express.static(__dirname + '/uploads'))
- 完整代碼
upload路由中
express的index中
最後大功告成,實作我們想要的功能