¿Puedo obtener el texto completo de la respuesta HTTP en Node.js desde la respuesta de un módulo HTTP .get?
Tengo un servidor web muy simple:
const ws = require('http');
ws.createServer(
function(req,res)
{
console.log('solicitud recibida');
res.write('Hola mundo');
res.end();
})
.listen(1234);
El servidor funciona. Cuando abro el navegador en localhost:1234, obtengo el texto “Hola mundo”. Cuando envío un GET a localhost:1234 desde un cliente REST, obtengo:
HTTP/1.1 200 OK
Fecha: vie, 03 dic 2021 20:10:12 GMT
Conexión: cerrar
Transfer-Encoding: chunked
Hola mundo
Ahora, me gustaría escribir una prueba, pero estoy teniendo dificultades para encontrar una forma de extraer el texto “Hola mundo” de la respuesta. En este momento, mi código de prueba se ve así:
const http = require('http');
let req = http.get('http://localhost:1234',(res)=>{
let txt = res.read();
console.log(txt);
});
Esto siempre retorna null.
También he intentado:
const http = require('http');
let req = http.get('http://localhost:1234',(res)=>{
let data = [];
res.on('data',(chunk)=>data.push(chunk));
console.log(data);
});
Esto retorna un arreglo vacío.
Cuando depuro y observo el objeto res, es fácil encontrar todo en la respuesta (principalmente en res.headers) excepto el texto “Hola mundo”. He visto muchos ejemplos para extraer datos enviados en formato JSON, etc., pero quiero comenzar con el ejemplo más simple posible (solo texto plano) y no puedo encontrar ninguna forma de hacerlo. Parece que cualquier cosa que el navegador pueda devolver debería estar disponible cuando envío un GET a través del módulo HTTP, pero no puedo encontrarlo.
davy.ai
Cómo extraer “Hola mundo” de una respuesta del servidor utilizando Node.js
Para extraer el texto “Hola mundo” de la respuesta de un servidor web Node.js, puedes utilizar el evento
data
del objeto de respuesta. Aquí tienes un ejemplo:En este ejemplo, escuchamos el evento
data
del objeto de respuesta y concatenamos cada fragmento de datos a una variable de tipo string. Cuando se dispara el eventoend
, hemos recibido la respuesta completa y podemos imprimir la variabledata
en la consola.Utilizando esta técnica, deberías ver el texto “Hola mundo” en la salida del script de prueba.