Sou iniciante Express.js
e estou confuso com essas duas palavras-chave: res.end()
e res.send()
.
Eles são iguais ou diferentes?
Sou iniciante Express.js
e estou confuso com essas duas palavras-chave: res.end()
e res.send()
.
Eles são iguais ou diferentes?
Respostas:
res.send()
enviará a resposta HTTP. Sua sintaxe é,
res.send([body])
O parâmetro body pode ser um objeto Buffer, uma String, um objeto ou uma Matriz. Por exemplo:
res.send(new Buffer('whoop'));
res.send({ some: 'json' });
res.send('<p>some html</p>');
res.status(404).send('Sorry, we cannot find that!');
res.status(500).send({ error: 'something blew up' });
Veja isso para mais informações.
res.end()
finalizará o processo de resposta. Na verdade, esse método vem do núcleo do nó, especificamente do response.end()
método de http.ServerResponse
. É usado para finalizar rapidamente a resposta sem nenhum dado. Por exemplo:
res.end();
res.status(404).end();
Leia isto para mais informações.
express
mas pelo título pensei - alguém envia algo, termina algo ... 'está certo.
res.send()
com nada. Isso funciona assim res.end()
?
Eu gostaria de enfatizar um pouco mais algumas diferenças importantes entre res.end()
e res.send()
com relação aos cabeçalhos de resposta e por que eles são importantes.
1. res.send () verificará a estrutura da sua saída e definirá as informações do cabeçalho de acordo.
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
app.get('/',(req,res)=>{
res.send({msg:'hello'});
});
Onde com res.end () você pode responder apenas com texto e ele não define " Tipo de conteúdo "
app.get('/',(req,res)=>{
res.end('<b>hello</b>');
});
2. res.send () definirá o atributo "ETag" no cabeçalho da resposta
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
¿Por que essa tag é importante?
O cabeçalho de resposta HTTP ETag é um identificador para uma versão específica de um recurso. Ele permite que os caches sejam mais eficientes e economiza largura de banda, pois um servidor da web não precisa enviar uma resposta completa se o conteúdo não foi alterado.
res.end()
NÃO definirá este atributo de cabeçalho
o que res.send () faz é implementar res.write , res.setHeaders e res.end .
verifica quais são os dados que você envia e define os cabeçalhos corretos,
em seguida, transmite os dados com res.write e, no final, usa res.end para definir o final da solicitação.
Em alguns casos, você desejará fazê-lo manualmente, por exemplo, se quiser transmitir um arquivo ou um conjunto de dados grande; nesses casos, você desejará definir os cabeçalhos por conta própria e usar o res.write para manter o fluxo fluxo.
res.end
usado por nó simples onde, comores.send
é usado por framwork expressa