node.js uygulamasında yeniyim ve bir süredir deneyimleyip deneyimliyorum. Şimdi istek gövdesinin ayrıştırılmasıyla ilgili hızlı çerçevenin tasarımı ile karıştırıldım. express resmi rehber itibaren : Bütün ortakatmanını kurduktan sonraNode.js, bodyParser ara katman yazılımının doğru kullanımını ifade eder
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(logErrors);
app.use(clientErrorHandler);
app.use(errorHandler);
, o zaman biz işlemek için istediğiniz rotayı ekleyin:
app.post('/test', function(req, res){
//do something with req.body
});
bu yaklaşımla sorun olduğunu tüm istek gövdesi yol geçerliliği kontrol edilmeden önce ayrıştırılacaktır. Geçersiz isteklerin gövdesini ayrıştırmak çok etkisiz görünüyor. Ve daha, ama yükleme işlemini etkinleştirirsem:
app.use(express.bodyParser({uploadDir: '/temp_dir'}));
Herhangi bir istemci herhangi bir dosya yükleyerek sunucuyu bombardımanına (HERHANGİ rota/yol isteği göndererek !!), işlenmiş ve tutulacaktır tüm '/ temp_dir'. Bu varsayılan yöntemin yaygın olarak tanıtıldığına inanamıyorum! rota tanımlarken
Biz tabii bodyParser işlevini kullanabilirsiniz:
app.post('/test1', bodyParser, routeHandler1);
app.post('/test2', bodyParser, routeHandler2);
hatta belki rotayı işlemek her işlevinde vücudu ayrıştırmak. Ancak, bu sıkıcı bir iştir.
Express.bodyParser ürününü yalnızca tüm geçerli (tanımlı) rotalar için kullanmanın ve dosya yükleme becerisi özelliğini yalnızca çok sayıda kod tekrarı olmaksızın yalnızca seçili yollarla kullanmak için daha iyi bir yol var mı?
Vay, son gelişmeleri kapsayacak şekilde bir yıl öncesine cevabınızı yeniden ziyaret için upvote yeniden: 'bodyParser' –
"Başlangıç kodu verimli günde 1 ve üretim kodu üzerinde çalışan lanet şey yardımcı olacak ve Güvenli genellikle çok farklıdır. Amin. –