2015-11-20 19 views
5

Có thể sử dụng Node.js và thể hiện để thả yêu cầu cho tuyến đường nhất định không? I E. không trả lại trạng thái http hoặc bất kỳ tiêu đề nào? Tôi muốn đóng kết nối.Yêu cầu thả trong node.js express

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

Tôi không chắc chắn, chỉ cần tự hỏi. Không 'trả lại;' tạo ra kết quả mong muốn? Nghe có vẻ hợp lý - chỉ đơn giản là không làm gì với phản ứng. –

+0

Tôi không nghĩ rằng việc trả lại sẽ làm giảm yêu cầu của khách hàng, vẫn đang chờ đợi. – Justin

+0

Để ngắt kết nối, bạn sẽ có thể ['.destroy()'] (https://nodejs.org/api/net.html#net_socket_destroy) ['.socket'] (https: // nodejs. org/api/http.html # http_message_socket) được sử dụng bởi yêu cầu - 'req.socket.destroy()'. Điều này sẽ mô phỏng "ngắt kết nối" thay vì "hết giờ", như bạn đã đề cập trong các nhận xét khác. Nếu bạn muốn kéo dài yêu cầu trên máy chủ vô thời hạn, để cho khách hàng cuối cùng chọn hết thời gian chờ, sau đó 'return;' hoặc chỉ một trình xử lý tuyến đường trống sẽ hoạt động tốt. –

Trả lời

-1

Có thể. Tất cả những gì bạn cần làm là gọi phương thức res.end tùy ý chuyển vào mã trạng thái.

Sử dụng một trong các phương pháp sau:

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

Nếu bạn muốn cũng phải thiết lập các tiêu đề, sau đó bạn muốn sử dụng phương pháp res.set. Xem dưới đây

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

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

Để biết chi tiết có một cái nhìn ở đây http://expressjs.com/api.html

+0

Tôi không muốn trả lại mã trạng thái, tôi muốn hoàn toàn yêu cầu. I E. mô phỏng thời gian chờ của http. – Justin

+0

Mã trạng thái trả về 408, đó là trạng thái hết thời gian chờ. Khi bạn gọi res.end, bạn đang kết thúc xử lý yêu cầu. – Don

0

Bạn có thể làm điều này bất cứ nơi nào bạn muốn đóng kết nối: res.end()

Các vấn đề liên quan