Sou iniciante Express.jse estou confuso com essas duas palavras-chave: res.end()e res.send().
Eles são iguais ou diferentes?
Sou iniciante Express.jse 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.
expressmas 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.endusado por nó simples onde, comores.sendé usado por framwork expressa