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中
最后大功告成,实现我们想要的功能