Tengo varias aplicaciones Express , y veo que en algunos módulos, res.end()
se llama al final de un controlador de solicitudes (después de res.send
o res.json
), mientras que en otros, no se llama.
Por ejemplo:
app.get('/test', function(req, res) {
res.send('Test', 200);
});
o:
app.get('/test', function(req, res) {
res.send('Test', 200);
res.end();
});
Ambos casos funcionan, pero tengo miedo de las fugas o de quedarme sin descriptores de archivos o algo así, cuando ejecuto muchas solicitudes. ¿Cuál es "más correcto"?
res.send()
desencadenadores.end()
, aunque podría estar equivocado.Respuestas:
La respuesta a tu pregunta es no. No tiene que llamar
res.end()
si llamares.send()
.res.send()
llamares.end()
por ti.Tomado de /lib/response.js , aquí está el final de la
res.send()
función://. . . // respond this.end(head ? null : body); return this; }
fuente
Un ejemplo en el que debe llamar a la función end () es cuando envía el búfer como un archivo para descargar.
fuente
Finaliza el proceso de respuesta. Este método en realidad proviene del núcleo de Node , específicamente el
response.end() method of http.ServerResponse.
uso para finalizar rápidamente la respuesta sin ningún dato.fuente