2015-11-20 40 views
5

Node.js kullanılarak ve belirli bir rota için bir talepte bulunmak için ekspres edilebilir mi? I.E. bir http durumu veya herhangi bir başlık döndürmüyor musunuz? Bağlantıyı kapatmak istiyorum.node.js ekspres istekte bulunma isteği

app.get('/drop', function(req, res) { 
    //how to drop the request here 
}); 
+1

Sadece merak, emin değilim. Geri dönmek, istenen sonucu üretmek değil mi? Mantıklı geliyor - yanıtla sadece bir şey yapmayın. –

+0

Geri dönüşün müşteri talebini düşüreceğini düşünmüyorum, hala düzeliyor. – Justin

+0

Bağlantıyı bırakmak için, ['.destroy()'] (https://nodejs.org/api/net.html#net_socket_destroy) ['.socket'] (https: // nodejs) yapabilmeniz gerekir. request - 'req.socket.destroy()' tarafından kullanılan org/api/http.html # http_message_socket). Bu, diğer yorumlarda belirtildiği gibi bir "zaman aşımı" yerine bir "bağlantıyı kes" olarak öykünecek. İstemcinin süresiz olarak uzatılmasını istiyorsanız, istemcinin zaman aşımına uğramasına izin verdikten sonra, 'geri dönün' veya boş bir yol işleyicisinin düzgün çalışması gerekir. –

cevap

-1

Evet yapabilirsiniz. Yapmanız gereken tek şey, isteğe bağlı olarak durum kodundan geçen res.end yöntemini çağırmaktır.

Aşağıdaki yöntemlerden birini: Ayrıca başlıklarını ayarlamak isteseydik

res.end(); 
res.status(404).end(); 

, o zaman res.set yöntemini kullanmayı tercih ediyorum. Ayrıntılar için

res.set('Content-Type', 'text/plain'); 

res.set({ 
    'Content-Type': 'text/plain', 
    'Content-Length': '123', 
    'ETag': '12345' 
}) 

Bunu yapabilirsiniz burada http://expressjs.com/api.html

+0

Yine de bir durum kodu vermek istemiyorum, isteği tamamen bırakmak istiyorum. I.E. http zaman aşımını simüle et. – Justin

+0

İade durum kodu 408, bu bir zaman aşımı durumu. Res.end'i çağırdığınızda, istek işlemeyi bitirirsiniz. – Don

0

bir göz Aşağıdaki bağlantıyı kapatmak istediğiniz yere bakınız: res.end()

İlgili konular