Я использую промежуточное программное обеспечение как таковое в моем приложении Nodejs с ReactJS в качестве внешнего интерфейса:
app.use(*, middleware);
Основная задача промежуточного программного обеспечения заключается в проверке входящего запроса, т. Е. Главным образом в проверке JWT, и только затем в выполнении проверкиnext () для перемещения запроса вперед по требуемому маршруту.
Основная проблема, с которой я сталкиваюсь:
Я использую JSON для передачи данных туда и обратно.Но так как я загружаю файл, я использую FormData () в этом конкретном случае.Поэтому я должен использовать multer для чтения многочастных данных.Основная проблема в том, что у меня есть промежуточное ПО, через которое проходит каждый запрос.Таким образом, чтобы любой файл достиг определенной конечной точки, он должен проходить через промежуточное ПО.Поэтому мне нужно сделать:
var multer = require('multer');
var upload = multer({dest: '/upload'});
app.use("*", upload.any(), middleware);
app.use("/register", register);
Внутри промежуточного программного обеспечения:
export const middleware = (req, res, next) => {
// check if req has proper JWT value. if yes
// next();
// if no
// res.json("Sorry can't move on.");
}
Основной риск, с которым я здесь сталкиваюсь, заключается в следующем: любой злонамеренный пользователь может загрузить файл в любую конечную точку.Это держит мой API в опасности.Есть ли способ обойти это и использовать multer только в определенной конечной точке?
Кроме того, если я это сделаю:
app.use("*", upload.none(), middleware);
Я получаю ошибку 500.Понятия не имею, откуда он.