req.files всегда равен нулю express -fileupload - PullRequest
0 голосов
/ 25 февраля 2020

TLDR: express -jwt создает конфликты с пакетами, добавляющими материал в параметр req node.js API (express -upload, например, multer).

Я работаю над node.js API, и я не могу удалить пакет. Я пытаюсь загрузить файлы из интерфейса в API. Я использовал много пакетов для этого (express -fileupload, multer ...), но ни один из них не решил мою проблему. Человек, создавший API, использовал express -jwt для аутентификации. Это работает путем добавления некоторой информации в поле req.user в API.

Моя проблема в том, что пакеты, используемые для загрузки файлов в nodejs, похоже, конфликтуют с express -jwt. Если я отключаю его, req.files заполняется как следует, и все работает отлично. Но когда я переустанавливаю express -jwt, req.files всегда имеет значение null. Я не могу просто использовать другой пакет аутентификации. Я понятия не имею, чтобы решить эту проблему.

1 Ответ

0 голосов
/ 25 февраля 2020

Я понял это. Сначала вы должны вызвать промежуточное программное обеспечение 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}));
...