Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

192
Vistas
¿Es una solución válida usar el emisor de eventos request.socket para dejar de recibir o manejar datos del cuerpo de la solicitud en el nodo js?

Notas:

#1 Hasta donde he leído la documentación de Node Js y las preguntas y respuestas en este sitio sobre cómo limitar el tamaño del cuerpo de la solicitud, una cosa es detener la función actual, otra cosa es que la red deje de manejar esos paquetes y otra muy aberrante es quitar el evento sobre "datos" para que deje de ser manipulado.

#2 Ya que no estoy usando "express" sino simplemente las bibliotecas nativas de Node Js para experimentar un poco, decidí probar diferentes formas de evitar que la solicitud del cuerpo maneje datos.

#3 Dado que lo que se recibe en el evento "datos" es un búfer de transmisión y se puede leer la longitud de este búfer, creé un acumulador para la longitud total de la transmisión del búfer recibido y un comparador de la longitud de cada búfer cuando se maneja para limitar el manejo de datos por estos dos valores.

#4 La longitud y el límite mencionados corresponden a la longitud del búfer y el límite para la longitud del acumulador no al tamaño en kb o mb ya que planeo usarlo para limitar la longitud de las cadenas de texto sin formato.

#5 La pregunta es: ¿Se puede usar el evento "detener" del socket de solicitud para detener el manejo de datos y qué sucede en ese caso con la red? He hecho algunas pruebas y parece que funciona pero tengo mis dudas sobre su viabilidad.

#6 Me gustaria tener la opinion de gente que haya hecho algo asi y posibles alternativas que no dependan de bibliotecas o peques externos.

 function getBody(request, limit) { return new Promise((resolve, reject) => { try { let data = ""; request.on("data", buffer => { if (buffer.length > limit || data.length > limit) { request.socket.emit("stop"); resolve(null); } else { data += buffer.toString(); } request.on("end", () => { resolve(data); }); }); } catch (error) { console.log(error); reject(error); } }) }
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda