Saltar al contenido

¿Cuál es la diferencia entre res.end () y res.send ()?

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>');
    });

ingrese la descripción de la imagen aquí


     app.get("https://foroayuda.es/",(req,res)=>{
         res.send({msg:'hello'});
     });

ingrese la descripción de la imagen aquí

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>');
      }); 

ingrese la descripción de la imagen aquí

2. res.send () establecerá el atributo “ETag” en el encabezado de respuesta

      app.get("https://foroayuda.es/",(req,res)=>{
            res.send('<b>hello</b>');
      });

ingrese la descripción de la imagen aquí

¿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:

  1. Comprueba los datos que envía y establece los encabezados de respuesta correctos.
  2. Luego transmite los datos con res.write.
  3. 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *