本文將教你如何使用 Node.js,特別是 Express,來處理檔案上傳。
首先,安裝 express-fileupload
npm 模組:
npm install express-fileupload
然後將它加入至中介軟體:
import fileupload from 'express-fileupload'
// 或者
const fileupload = require('express-fileupload')
在你建立了 Express 應用程式之後,加入以下程式碼:
app.use(
fileupload(),
//...
這是必要的,否則伺服器將無法解析檔案上傳。
現在上傳的檔案將會在 req.files
中提供。如果你忘記加入這個中介軟體,req.files
會是 undefined
。
以下是處理檔案的最小程式碼範例:
app.post('/saveImage', (req, res) => {
const image = req.files.myFile
const path = __dirname + '/images/' + image.name
image.mv(path, (error) => {
if (error) {
console.error(error)
res.writeHead(500, {
'Content-Type': 'application/json'
})
res.end(JSON.stringify({ status: 'error', message: error }))
return
}
res.writeHead(200, {
'Content-Type': 'application/json'
})
res.end(JSON.stringify({ status: 'success', path: '/images/' + image.name }))
})
})
我們使用了上傳圖片的 mv
屬性,這是 express-fileupload
模組所提供的。我們將它移動至指定的 path
,然後將處理結果(成功或錯誤)回傳給客戶端。