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
fetch
no es un método estándar de nodejs - usted necesitanode-fetch
fetch()
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
var
es cambiante, recomendaría queconst
se 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
fetch
y 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 defined
error deamazon-cognito-identity-js
.Para aquellos que también usan mecanografiado en node-js y están obteniendo un
ReferenceError: fetch is not defined
errornpm install
estos paquetes:Luego incluye:
fuente
amazon-cognito-identity-js
no 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-fetch
módulo para tuNode
proyecto porqueNode
todaví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 axios
para 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