无法使用 express-fileupload 接收请求中的文件
Unable to receive files in request using express-fileupload
我使用 REST 客户端来测试我的应用程序(Insomnia 和 postman)。我的应用实际上什么都不做:
const express = require('express');
const app = express();
const fileUpload = require('express-fileupload');
app.use(express.json())
app.use(fileUpload());
app.post('/', fileUpload(), function(req, res) {
console.log(req.files)
res.send('a')
});
const PORT = 9999;
app.listen(PORT, () => {
console.log(`Server listening on port ${PORT}...`);
});
每当我尝试将文件上传到此服务时 req.files 未定义。我从快速文档页面和一些 Whosebug 问题中获取了这段代码,但它对我不起作用。 Content-length
不错(40k 好像还行)
Content-type
由我的 REST 客户端自动设置。我必须改变这个吗?
我尝试简单地打印整个请求对象并且 body
是空的并且 files
甚至不存在
只需做一件事:从 post
端点删除文件 fileUpload()
并检查,找到以下代码供您参考。
app.post('/', function(req, res) {
console.log(req.files)
res.send('a')
});
所以对于任何想知道的人。 fileupload
需要 form-data Content-type。而且,它还要求文件在这个form-data中有一个“密钥”。很遗憾文档没有提到这一点。
我使用 REST 客户端来测试我的应用程序(Insomnia 和 postman)。我的应用实际上什么都不做:
const express = require('express');
const app = express();
const fileUpload = require('express-fileupload');
app.use(express.json())
app.use(fileUpload());
app.post('/', fileUpload(), function(req, res) {
console.log(req.files)
res.send('a')
});
const PORT = 9999;
app.listen(PORT, () => {
console.log(`Server listening on port ${PORT}...`);
});
每当我尝试将文件上传到此服务时 req.files 未定义。我从快速文档页面和一些 Whosebug 问题中获取了这段代码,但它对我不起作用。 Content-length
不错(40k 好像还行)
Content-type
由我的 REST 客户端自动设置。我必须改变这个吗?
我尝试简单地打印整个请求对象并且 body
是空的并且 files
甚至不存在
只需做一件事:从 post
端点删除文件 fileUpload()
并检查,找到以下代码供您参考。
app.post('/', function(req, res) {
console.log(req.files)
res.send('a')
});
所以对于任何想知道的人。 fileupload
需要 form-data Content-type。而且,它还要求文件在这个form-data中有一个“密钥”。很遗憾文档没有提到这一点。