Node.js es un intérprete de Javascript que funciona en el lado del servidor y cambia por completo la forma en que debería funcionar. Utiliza un modelo de operaciones sin bloqueo y basado en eventos, lo que lo hace liviano y eficiente. A pesar de estar catalogado como un marco, Node.js es un "Entorno de tiempo de ejecución de Java". Un Java Runtime Environment (JRE) es un software diseñado para ejecutar otro software.
Los usuarios de Node.js pueden preocuparse por el bloqueo del proceso, ya que no existe. Casi ninguna función en Node.js realiza E/S directamente, por lo que el proceso nunca se bloquea. Por lo tanto, es muy propicio para desarrollar sistemas escalables en Node.js.
La API Fetch es una de las más esperadas por los usuarios de Node.Js. El 1 de febrero de 2022, el equipo central de Node.js fusionó una solicitud de extracción y agregó la API Fetch a Node. A pesar de que esta API lleva tiempo siendo utilizada, apenas está integrada a Node.Js, desde el 2015 es la sucesora de XMLHttpRequest y se ha convertido en la más usada para hacer llamados asíncronos en aplicaciones web.
La API Fetch es una función de alto nivel y toma una URL para producir una promesa que se resuelve en la respuesta, de la siguiente manera:
fetch("http://example.com/api/endpoint") .then((response) => { // Do something with response }) .catch(function (err) { console.log("Unable to fetch -", err); });
También puedes cambiar la forma en que se lleva a cabo el proceso de obtención agregando un objeto opcional después de la URL.
npm install node-fetch
Módulo ES
import fetch from 'node-fetch';
CommonJS
npm install node-fetch@2
Para usar Fetch sin importarlo, puedes usar:
// fetch-polyfill.js import fetch, { Blob, blobFrom, blobFromSync, File, fileFrom, fileFromSync, FormData, Headers, Request, Response, } from 'node-fetch' if (!globalThis.fetch) { globalThis.fetch = fetch globalThis.Headers = Headers globalThis.Request = Request globalThis.Response = Response } // index.js import './fetch-polyfill' // ...
Se elimina el paquete de búsqueda adicional
Al tener Fetch incorporado en Node.js significa el fin de paquetes como node-fetch, got, cross-fetch y muchos otros que fueron creados para el mismo uso. El desarrollador no tiene que instalar npm antes de realizar operaciones de red en Node. La API Fetch nativa hará que la obtención de HTTP en entornos de nodo se sienta mucho más fluida y natural.
Multiplataforma
Si ya un desarrollador tiene experiencia utilizando la API Fetch, no tendrá problemas en utilizar la integración con Node.js. En cambio, trabajará en un ambiente simple e intuitivo, al contrario de usar paquetes externos para lograr la misma funcionalidad.
Rápida implementación
Fetch se basa en Undici, un cliente HTTP conocido por su rapidez, confiabilidad y compatibilidad con todas las especificaciones de Node.js. Esto anticipa un rendimiento mejorado de la API Fetch.
En LogRocket comentan “En general, es emocionante que Fetch finalmente llegue al núcleo de Node.js, ya que esta ha sido una solicitud de mucho tiempo de la comunidad de desarrolladores. Puede tomar un tiempo (alrededor de uno o dos años) para que Fetch API sea completamente estable en Node.js, ya que aún queda mucho por hacer para que cumpla con los estándares. También se esperan muchas actualizaciones interesantes en un futuro próximo, una de las cuales incluye la adición de compatibilidad con HTTP/2 a Undici y, finalmente, la propia API Fetch”.