Mam kilka aplikacji Express i widzę, że w niektórych modułach res.end()
jest wywoływana na końcu modułu obsługi żądań (po res.send
lub res.json
), podczas gdy w innych nie jest wywoływana.
Na przykład:
app.get('/test', function(req, res) {
res.send('Test', 200);
});
lub:
app.get('/test', function(req, res) {
res.send('Test', 200);
res.end();
});
Oba przypadki działają, ale boję się wycieków lub wyczerpania deskryptorów plików lub czegoś w tym rodzaju, gdy uruchamiam wiele żądań. Który z nich jest „bardziej poprawny”?
res.send()
wywołaneres.end()
- może być źle.Odpowiedzi:
Odpowiedź na twoje pytanie brzmi: nie. Nie musisz dzwonić,
res.end()
jeśli dzwoniszres.send()
.res.send()
wołares.end()
do ciebie.Zaczerpnięte z /lib/response.js , oto koniec
res.send()
funkcji://. . . // respond this.end(head ? null : body); return this; }
źródło
jednym z przykładów, w którym musisz wywołać funkcję end (), jest wysłanie bufora jako pliku do pobrania.
źródło
Kończy proces odpowiedzi. Ta metoda w rzeczywistości pochodzi z rdzenia węzła , a konkretnie z
response.end() method of http.ServerResponse.
użycia do szybkiego zakończenia odpowiedzi bez żadnych danych.źródło