Solución:
res.send()
enviará la respuesta HTTP. Su sintaxis es,
res.send([body])
El parámetro del cuerpo puede ser un objeto Buffer, una cadena, un objeto o una matriz. Por ejemplo:
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' });
Vea esto para más información.
res.end()
terminará el proceso de respuesta. Este método en realidad proviene del núcleo de Node, específicamente el response.end()
método de http.ServerResponse
. Se utiliza para finalizar rápidamente la respuesta sin ningún dato. Por ejemplo:
res.end();
res.status(404).end();
Lea esto para más información.
Me gustaría hacer un poco más de énfasis en algunas diferencias clave entre res.end()
Y res.send()
con respecto a los encabezados de respuesta y por qué son importantes.
1. res.send () comprobará la estructura de su salida y establecerá la información del encabezado en consecuencia.
app.get("https://foroayuda.es/",(req,res)=>{
res.send('<b>hello</b>');
});
app.get("https://foroayuda.es/",(req,res)=>{
res.send({msg:'hello'});
});
Donde con res.end () solo puede responder con texto y no se configurará “Tipo de contenido“
app.get("https://foroayuda.es/",(req,res)=>{
res.end('<b>hello</b>');
});
2. res.send () establecerá el atributo “ETag” en el encabezado de respuesta
app.get("https://foroayuda.es/",(req,res)=>{
res.send('<b>hello</b>');
});
¿Por qué es importante esta etiqueta?
El encabezado de respuesta HTTP ETag es un identificador para una versión específica de un recurso. Permite que los cachés sean más eficientes y ahorra ancho de banda, ya que un servidor web no necesita enviar una respuesta completa si el contenido no ha cambiado.
res.end()
NO establecerá este atributo de encabezado
res.send()
implementos res.write
, res.setHeaders
y res.end
:
- Comprueba los datos que envía y establece los encabezados de respuesta correctos.
- Luego transmite los datos con
res.write
. - Finalmente, usa
res.end
para establecer el final de la solicitud.
Hay algunos casos en los que querrá hacer esto manualmente, por ejemplo, si desea transmitir un archivo o un conjunto de datos grande. En estos casos, querrá configurar los encabezados usted mismo y usar res.write
para mantener el flujo de la corriente.