Tengo este error cuando compilo mi código en node.js, ¿cómo puedo solucionarlo?
RefernceError: fetch no está definido
Esta es la función que estoy haciendo, es responsable de recuperar información de una base de datos de películas específica.
function getMovieTitles(substr){
pageNumber=1;
let url = 'https://jsonmock.hackerrank.com/api/movies/search/?Title=' + substr + "&page=" + pageNumber;
fetch(url).then((resp) => resp.json()).then(function(data) {
let movies = data.data;
let totPages = data.total_pages;
let sortArray = [];
for(let i=0; i<movies.length;i++){
sortArray.push(data.data[i].Title);
}
for(let i=2; i<=totPages; i++){
let newPage = i;
let url1 = 'https://jsonmock.hackerrank.com/api/movies/search/?Title=' + substr + "&page=" + newPage;
fetch(url1).then(function(response) {
var contentType = response.headers.get("content-type");
if(contentType && contentType.indexOf("application/json") !== -1) {
return response.json().then(function(json) {
//console.log(json); //uncomment this console.log to see the JSON data.
for(let i=0; i<json.data.length;i++){
sortArray.push(json.data[i].Title);
}
if(i==totPages)console.log(sortArray.sort());
});
} else {
console.log("Oops, we haven't got JSON!");
}
});
}
})
.catch(function(error) {
console.log(error);
});
}
javascript
node.js
jasa1704
fuente
fuente


fetchno es un método estándar de nodejs - usted necesitanode-fetchfetch()fue diseñado para el navegador y luego se transfirió a node.js en un módulo de terceros que aparentemente falta. Elrequest()o larequest-promise()biblioteca se construyó más de forma nativa para Node.js y es compatible con una gama mucho más amplia de opciones para Node.js incluyendo arroyos, un trillón de métodos de autenticación, etc ...Respuestas:
La API de búsqueda no está implementada en Node.
Necesitas usar un módulo externo para eso, como node-fetch .
Instálelo en su aplicación Node como esta
luego coloque la línea a continuación en la parte superior de los archivos donde está utilizando la API de recuperación:
fuente
vares cambiante, recomendaría queconstse use en su lugar ...Si tiene que ser accesible con un alcance global
Esta es una solución rápida y sucia, intenta eliminar el uso en el código de producción.
fuente
fetchy completara automáticamente los métodos disponibles. Convino en que debería evitarse en la producción, ¡pero muy útil para el desarrollador local!Puede usar la búsqueda cruzada de @lquixada
Instalar en pc
Uso
Con promesas:
Con asíncrono / espera:
fuente
ReferenceError: fetch is not definederror deamazon-cognito-identity-js.Para aquellos que también usan mecanografiado en node-js y están obteniendo un
ReferenceError: fetch is not definederrornpm installestos paquetes:Luego incluye:
fuente
amazon-cognito-identity-jsno es relevante para esta pregunta y no es necesario instalarlo para resolver este error. Tampoco está relacionado con el mecanografiado.Tienes que usar el
isomorphic-fetchmódulo para tuNodeproyecto porqueNodetodavía no lo contieneFetch API. Para solucionar este problema, ejecute el siguiente comando:Después de la instalación, use el siguiente código en su proyecto:
Espero que esta respuesta te ayude.
fuente
La mejor es la biblioteca Axios para buscar. use
npm i --save axiospara installng y úselo como fetch, solo escriba axios en lugar de fetch y luego obtenga la respuesta en then () .fuente
Node.js no ha implementado el método fetch (), pero puede usar uno de los módulos externos de este fantástico entorno de ejecución para JavaScript.
En una de las respuestas anteriores, se cita "node-fetch" y esa es una buena opción.
En su carpeta de proyecto (el directorio donde tiene los scripts .js) instale ese módulo con el comando:
npm i node-fetch --save
Luego, úselo como una constante en el script que desea ejecutar con Node.js, algo como esto:
const fetch = require ("nodo-fetch");
fuente
Este es el problema relacionado con github Este error está relacionado con la versión 2.0.0, puede resolverlo simplemente actualizando a la versión 2.1.0. Tu puedes correr
npm i [email protected]fuente
Lo siguiente funciona para mí en Node.js 12.x:
para inicializar la instancia de Dropbox:
para, por ejemplo, cargar un contenido (un método asincrónico utilizado en este caso):
fuente