如何用 express 接收文件 formdata js
express
是一个 nodejs
的后台框架,如何接收文件并存储文件呢。
一、需要用到 multer
multer
是 express
用于处理 multipart/form-data
类型数据的中间件,它可以实现存储发送过来的 formData
中的文件。
具体看官方文档:
二、multer 安装
npm i multer
# 或
yarn add multer
三、multer 使用
const express = require('express')
const router = express.Router()
const multer = require('multer')
const upload = multer({dest: 'upload'}) // 1.定义文件的存放位置,不带 / 的是相对位置
// 2.存储 FormData 中名为 'dict' 的文件
router.post('/upload-dict', upload.single('dict'), (req, res, next) => {
// 3. 存储后的文件信息在 req.file 中,此时文件已经存储到本地了。
console.log(req.file)
})
四、不存储文件,只获取其内容。
如果你不想存储这个文件,只是想读取其内容,就需要将中间件的参数由下面这个改为后面那个
const upload = multer({dest: 'upload'})
const storage = multer.memoryStorage()
const upload = multer({ storage: storage })
此时 req.file
参数中会多出一个名为 buffer
的字段,文件内容就在这个 buffer
中。
五、延伸阅读
用 express 进行文件上传下载操作可能会遇到 413 的错误,这样解决: