Node.js wyrażają poprawne użycie oprogramowania pośredniego bodyParser

Jestem nowym użytkownikiem node.js i express i od pewnego czasu eksperymentuję z nimi. Teraz mylę się z projektem ekspresowej struktury związanej z analizowaniem treści żądania. Z oficjalnego przewodnika ekspresowego:

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

Po skonfigurowaniu całego oprogramowania pośredniego dodajemy trasę, którą chcemy obsługiwać:

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

Problem z tym podejściem polega na tym, że cała treść żądania zostanie przeanalizowana przed sprawdzeniem ważności trasy. Wydaje się bardzo nieefektywne analizowanie treści nieprawidłowych żądań. A nawet więcej, jeśli włączymy przetwarzanie przesyłania:

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

Każdy klient może bombardować serwer, przesyłając dowolne pliki (wysyłając żądanie do dowolnej trasy / ścieżki !!), które będą przetwarzane i przechowywane w katalogu „/ temp_dir”. Nie mogę uwierzyć, że ta domyślna metoda jest szeroko promowana!

Możemy oczywiście użyć funkcji bodyParser podczas definiowania trasy:

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

lub nawet może analizować ciało w każdej funkcji obsługującej trasę. Jest to jednak żmudne.

Czy jest lepszy sposób na użycie express.bodyParser tylko dla wszystkich poprawnych (zdefiniowanych) tras i użycie możliwości przesyłania plików tylko na wybranych trasach, bez wielu powtórzeń kodu?

questionAnswers(1)

yourAnswerToTheQuestion