如何用 express 接收文件 formdata js

发布于:2023-01-17 ⋅ 阅读:(745) ⋅ 点赞:(0)

如何用 express 接收文件 formdata js

express 是一个 nodejs 的后台框架,如何接收文件并存储文件呢。

一、需要用到 multer

multerexpress 用于处理 multipart/form-data 类型数据的中间件,它可以实现存储发送过来的 formData 中的文件。

具体看官方文档:

https://github.com/expressjs/multer

二、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 中。