2015-11-20 10 views
5

Czy jest możliwe, aby za pomocą Node.js i Express upuścić żądanie dla określonej trasy? TO ZNACZY. nie zwraca statusu http lub żadnych nagłówków? Chciałbym po prostu zamknąć połączenie.Żądanie usunięcia w pliku node.js express

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

nie jestem pewien, po prostu zastanawiasz się. Czy "nie powróciło", nie przyniosło pożądanego rezultatu? Brzmi logicznie - po prostu nic nie rób z reakcją. –

+0

Nie sądzę, że powrót spowoduje odrzucenie żądania klienta, nadal jest w toku. – Justin

+0

Aby zrzucić połączenie, powinieneś móc ['.destroy()'] (https://nodejs.org/api/net.html#net_socket_destroy) ['.socket'] (https: // nodejs. org/api/http.html # http_message_socket) używanego przez żądanie - 'req.socket.destroy()'. To będzie emulować "rozłączenie", a nie "limit czasu", jak wspomniano w innych komentarzach. Jeśli chcesz przedłużyć żądanie na serwerze w nieskończoność, pozwalając klientowi ostatecznie wybrać opcję timeout, a następnie "return;" lub po prostu pusty program obsługi trasy powinien działać poprawnie. –

Odpowiedz

-1

Tak, można. Wszystko, co musisz zrobić, to wywołać metodę res.end opcjonalnie przekazując kod statusu.

Użyj jednej z następujących metod:

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

Jeśli chciał również ustawić nagłówki, to by użyć metody res.set. Poniżej

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

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

Szczegółowe rzucić okiem tutaj http://expressjs.com/api.html

+0

Nie chcę jednak zwrócić kodu statusu, chcę całkowicie usunąć żądanie. TO ZNACZY. symulować limit czasu http. – Justin

+0

Zwraca kod statusu 408, który jest stanem limitu czasu. Kiedy wywołasz res.end, kończysz przetwarzanie żądania. – Don

0

Można to zrobić gdziekolwiek chcesz zamknąć połączenie: res.end()

Powiązane problemy