Ich habe mehrere Express- Anwendungen und sehe, dass sie in einigen Modulen res.end()
am Ende eines Anforderungshandlers (nach res.send
oder res.json
) aufgerufen werden, während sie in anderen Modulen nicht aufgerufen werden.
Beispielsweise:
app.get('/test', function(req, res) {
res.send('Test', 200);
});
oder:
app.get('/test', function(req, res) {
res.send('Test', 200);
res.end();
});
Beide Fälle funktionieren, aber ich habe Angst vor Lecks oder fehlenden Dateideskriptoren oder Ähnlichem, wenn ich viele Anfragen ausführe. Welches ist "korrekter"?
res.send()
ausgelöstres.end()
- könnte aber falsch sein.Antworten:
Die Antwort auf Ihre Frage lautet nein. Sie müssen nicht anrufen,
res.end()
wenn Sie anrufenres.send()
.res.send()
ruftres.end()
nach dir.Aus /lib/response.js entnommen , ist hier das Ende der
res.send()
Funktion:quelle
Ein Beispiel, bei dem Sie die Funktion end () aufrufen müssen, ist das Senden eines Puffers als Datei zum Herunterladen.
quelle
Beendet den Antwortprozess. Diese Methode stammt tatsächlich aus dem Knotenkern , insbesondere aus der
response.end() method of http.ServerResponse.
Verwendung zum schnellen Beenden der Antwort ohne Daten.quelle