Hacer una solicitud HTTP para obtener datos usando Node.js

Shraddha Paghdar 12 octubre 2023
Hacer una solicitud HTTP para obtener datos usando Node.js

En el artículo de hoy, aprenderemos cómo realizar la solicitud HTTP y obtener los datos usando node.js.

Solicitud HTTP para obtener datos usando Node.js

Podemos usar módulos integrados en node.js para enviar solicitudes HTTP. Estos módulos estándar utilizan las devoluciones de llamada para procesar la solicitud y obtener los datos.

Axios, node-fetch, super agent y otros módulos también se pueden usar para enviar solicitudes HTTP. El módulo HTTPs realiza la llamada utilizando la función request.

El objeto de opciones, que proporciona el nombre de host, el número de puerto y la ruta de la URL del servidor, y el tipo de solicitud, se pasa como argumento a esta función de solicitud.

La función callback es el segundo argumento. Cuando se atiende la solicitud, se activa esta función de devolución de llamada. El módulo HTTPs tiene varios eventos que pueden manejar las solicitudes y obtener los datos solicitados.

Por ejemplo, para finalizar una solicitud, utilice req.end() y req.on('error') en caso de error. Después de recibir la solicitud, el servidor procesa los datos y devuelve la respuesta en fragmentos.

Cuando ocurre un evento relacionado con la respuesta, como res.on('data') o res.on('end'), podemos recuperar la respuesta. Cuando se devuelve la respuesta completa en el evento final, podemos imprimirla en la consola después de concatenar la porción de datos en el evento de datos.

Debido a que https.request es asincrónico, devolverá indefinido si intentamos leer la respuesta del servidor antes de que finalice la solicitud. Comprendamos el proceso anterior en un ejemplo simple a continuación.

Código de ejemplo:

const https = require('https');
const options = {
  hostname: 'jsonplaceholder.typicode.com',
  port: 443,
  path: '/posts/1',
  method: 'GET',
};

function submitRequest() {
  const req = https.request(options, res => {
    let outputData = ''
    console.log(`statusCode: ${res.statusCode}`);
    res.on('data', dataChunk => {
      outputData += dataChunk;
    });
    res.on('end', () => {
      console.log('outputData', outputData);
    });
  });
  req.on('error', error => {
    console.error('error', error);
  });
  req.end();
}
submitRequest()

En el ejemplo de código anterior, enviamos una solicitud GET al servidor simulado especificando la ruta y un número de puerto. Después de recibir la solicitud y procesar los datos, el servidor fragmenta la respuesta y la devuelve.

Podemos concatenar los datos de respuesta e imprimirlos en la consola una vez que la respuesta se haya devuelto por completo en el método final.

Ejecute la línea de código anterior en Replit, que es compatible con node.js. Mostrará el siguiente resultado. También puede encontrar la demostración del código anterior aquí.

Producción :

statusCode: 200
outputData {
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn