Creé una clase para obtener algo de una API y construir una respuesta adecuada para mi aplicación.
Uso este archivo tanto en una aplicación que se ejecuta en el navegador como en una aplicación CLI para trabajar en la terminal.
Como primero construí la aplicación del navegador, no hubo importación para la búsqueda de nodos. Ahora, cuando trato de usar este archivo .js en mi aplicación CLI, devuelve un error que dice que la fetch is not defined .
Si agrego a mi archivo api client .js: import fetch from "node-fetch" , entonces ahora la aplicación de mi navegador tampoco funciona, imprima en la consola:
Uncaught TypeError: Failed to resolve module specifier "node-fetch". Relative references must start with either "/", "./", or "../".
¿Hay alguna forma de aplicar fetch y usar el mismo archivo para ambos?
Gracias
Tus opciones son:
fetchfetch según el entorno de destino .¡La primera opción es mucho más fácil (al menos desde un punto de vista técnico)!
Para los casos de uso en los que no puede actualizar Node, puede importar condicionalmente la API Fetch.
let fetch = globalThis?.fetch; if (!fetch && process?.versions?.node) { fetch = (await import('node-fetch')).default; } console.log(fetch);Tenga en cuenta que esto usa await de nivel superior .
Al usar NodeJS, buscar no es algo real. Definitivamente lo reemplazaría con el módulo Axios como se muestra a continuación:
const axios = require('axios'); axios.get(link).then(response => { // ... });