Node.js выражают правильное использование промежуточного программного обеспечения bodyParser

Я новичок в node.js и выражаю и экспериментирую с ними некоторое время. Теперь меня смущает дизайн экспресс-фреймворка, связанного с разбором тела запроса. Из официального руководства экспресс:

app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(logErrors);
app.use(clientErrorHandler);
app.use(errorHandler);

После настройки всего промежуточного программного обеспечения, мы добавляем маршрут, который мы хотим обработать:

app.post('/test', function(req, res){ 
  //do something with req.body      
});

Проблема с этим подходом состоит в том, что все тело запроса будет сначала проанализировано перед проверкой достоверности маршрута. Кажется очень неэффективным анализировать тело неверных запросов. И даже больше, если мы включим обработку загрузки:

app.use(express.bodyParser({uploadDir: '/temp_dir'}));

Любой клиент может засыпать сервер, загрузив любые файлы (отправив запрос на ЛЮБОЙ маршрут / путь !!), и все они будут обработаны и сохранены в «/ apos; / temp_dir». Я не могу поверить, что этот метод по умолчанию широко рекламируется!

Конечно, мы можем использовать функцию bodyParser при определении маршрута:

app.post('/test1', bodyParser, routeHandler1);
app.post('/test2', bodyParser, routeHandler2);

или даже, возможно, анализировать тело в каждой функции, которая обрабатывает маршрут. Однако это утомительно.

Есть ли лучший способ использовать express.bodyParser только для всех допустимых (определенных) маршрутов и использовать возможность обработки загрузки файлов только на выбранных маршрутах без большого количества повторений кода?

Ответы на вопрос(1)

Ваш ответ на вопрос