req.files 始终为空
req.files is always null express-fileupload
TLDR:express-jwt 与在 node.js API(例如 express-upload,multer)的 req 参数中添加内容的包产生冲突。
我正在处理 node.js API,但我无法删除任何包。我正在尝试将文件从前端上传到 API。为此,我使用了很多包(express-fileupload、multer ...),但其中 none 解决了我的问题。创建 API 的人使用 express-jwt 进行身份验证。它的工作原理是在 API 的 req.user 字段中添加一些信息。
我的问题是在nodejs中用于上传文件的包似乎与express-jwt产生了冲突。如果我禁用它,req.files 会按原样填充,并且一切正常。但是当我重新安装 express-jwt 时,req.files 总是空的。我不能只使用另一个身份验证包。我不知道如何解决这个问题。
我明白了。您必须先调用 express-fileupload 中间件。我添加了以下代码,之后调用的任何中间件都可以访问 req.files。
const fileUpload = require('express-fileupload');
app.use(fileUpload());
app.use((req: any, res: any, next: any) => {
console.log("user : " + req.user + " ===== files : " + req.files);
next();
})
出于任何原因,如果您先调用 express-jwt,req.files 将不会被填充。对我来说,引起冲突的是这一行:
app.use(expressJwt({secret: PUBLIC, strict : false}).unless({path : unless}));
TLDR:express-jwt 与在 node.js API(例如 express-upload,multer)的 req 参数中添加内容的包产生冲突。
我正在处理 node.js API,但我无法删除任何包。我正在尝试将文件从前端上传到 API。为此,我使用了很多包(express-fileupload、multer ...),但其中 none 解决了我的问题。创建 API 的人使用 express-jwt 进行身份验证。它的工作原理是在 API 的 req.user 字段中添加一些信息。
我的问题是在nodejs中用于上传文件的包似乎与express-jwt产生了冲突。如果我禁用它,req.files 会按原样填充,并且一切正常。但是当我重新安装 express-jwt 时,req.files 总是空的。我不能只使用另一个身份验证包。我不知道如何解决这个问题。
我明白了。您必须先调用 express-fileupload 中间件。我添加了以下代码,之后调用的任何中间件都可以访问 req.files。
const fileUpload = require('express-fileupload');
app.use(fileUpload());
app.use((req: any, res: any, next: any) => {
console.log("user : " + req.user + " ===== files : " + req.files);
next();
})
出于任何原因,如果您先调用 express-jwt,req.files 将不会被填充。对我来说,引起冲突的是这一行:
app.use(expressJwt({secret: PUBLIC, strict : false}).unless({path : unless}));