El modulo request para Nodejs es abandonado.
La popular librería usada en mas de 40.000 proyectos queda obsoleta y no tendrá mas actualizaciones. Recomiendan a los desarrolladores a buscar alternativas.

Vaya noticia con la que me he encontrado aquí, si si el modulo request es abandonado y las razones que ha expuesto el creador son totalmente lógicas, request es obsoleta actualmente desde el diseño.
El ecosistema de JavaScript ha cambiado rápidamente y los patrones de código en el núcleo de
request están desactualizados.
Si queréis leer la noticia completa podéis hacerlo desde aquí.
Puesto que request es obsoleta, vamos a ver unas alternativas que reemplacen el popular modulo para Nodejs.
Yo personalmente mis proyectos que dependen de request ya los he actualizado. El reemplazo que uso actualmente es axios. Como yo, recomiendo que actualicen los proyectos que dependan de request.
Para ver el funcionamiento de las próximos módulos realizaremos una petición GET al API publica de Bitbucket.
Alternativas a request
Axios
El primer remplazo, el cual recomiendo es axios, un modulo HTTP basado en promesas, muy fácil de utilizar.

Para instalar el modulo:
npm install axios
Ejemplo:
const axios = require('axios').default; // https://www.npmjs.com/package/axios // make a simple request in axios axios.get('https://api.bitbucket.org/2.0/users/rsdiaz') .then((response) => { // handle success console.log(response.data); }) .catch((error) => { // handle error console.log(error); }) .finally(() => { // always executed console.log('good job, end to make request in axios...'); })
Node-fetch
Como segunda opción tenemos a node-fetch, otro modulo basado en promesas para peticiones HTTP. Como dicen sus desarrolladores un XMLHttpRequest en Node.js. Un modulo con cero dependencias.

Instalación:
npm install node-fetch
Ejemplo:
const node_fetch = require('node-fetch'); // https://www.npmjs.com/package/node-fetch // make a simple request in node-fetch node_fetch('https://api.bitbucket.org/2.0/users/rsdiaz') .then((res) => { return res.json(); }) .then((json) => { return console.log(json) }) .catch((error) => { return console.error(error) }) .finally(() => { console.log('god job, end to make request in node-fetch...'); });
Got
Como tercera opción got, otro modulo para peticiones HTTP que últimamente tiene unas descargas semanales de infarto.

Instalación:
npm install got
Ejemplo:
const got = require('got'); // https://www.npmjs.com/package/got // make a simple request in got (async () => { try { const response = await got('https://api.bitbucket.org/2.0/users/rsdiaz'); console.log(JSON.parse(response.body)); } catch (error) { console.log(error.response.body); } })();
Estos tres módulos son buenos sustitutos de request, cada uno de estos tres módulos tienen características diferentes que seguro que se ajustaran a vuestros proyectos .
Recomiendo leerse la documentación de cada uno de ellos y así valorar cual de ellos se ajusta mas a vuestras necesidades.
Y con esto hasta aquí, se marcha un clásico de Nodejs pero eso bueno, JavaScript sigue evolucionando.
Si conocéis otros módulos, un comentario para compartir conocimientos.
Un saludo.
Enlaces
Noticia en The Register - https://www.theregister.co.uk/2020/02/12/requiem_for_request
axios en NPM - https://www.npmjs.com/package/axios
node-fetch en NPM - https://www.npmjs.com/package/node-fetch
got en NPM - https://www.npmjs.com/package/got
💌 Suscribete al blog
Contacta conmigo
Para contactar conmigo, puedes hacerlo accediendo a la pagina de contacto y rellenando el formulario.
También puedes escribirme a traves Twitter.