Tenho vários aplicativos Express e vejo que em alguns módulos, res.end()
é chamado no final de um manipulador de solicitação (após res.send
ou res.json
), enquanto em outros, não é chamado.
Por exemplo:
app.get('/test', function(req, res) {
res.send('Test', 200);
});
ou:
app.get('/test', function(req, res) {
res.send('Test', 200);
res.end();
});
Ambos os casos funcionam, mas tenho medo de vazamentos ou esgotamento dos descritores de arquivo ou algo assim, quando executo muitas solicitações. Qual é o "mais correto"?
res.send()
acionadores.end()
- pode estar errado, embora.Respostas:
A resposta a sua pergunta é não. Você não precisa ligar
res.end()
se ligarres.send()
.res.send()
chamadasres.end()
para você.Retirado de /lib/response.js , aqui está o final da
res.send()
função:fonte
um exemplo em que você deve chamar a função end () é quando você envia um buffer como um arquivo para download.
fonte
Termina o processo de resposta. Na verdade, esse método vem do núcleo do Nó , especificamente o
response.end() method of http.ServerResponse.
Use para encerrar rapidamente a resposta sem nenhum dado.fonte