Eu tenho esse erro ao compilar meu código no node.js, como corrigi-lo?
RefernceError: a busca não está definida
Esta é a função que estou executando, é responsável pela recuperação de informações de um banco de dados de filmes específico.
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
fonte
fonte
fetch
não é um método nodejs padrão - você precisanode-fetch
fetch()
foi projetado para o navegador e depois portado para node.js em um módulo de terceiros que aparentemente está faltando. Orequest()
ourequest-promise()
biblioteca é mais nativamente construído para node.js e suporta uma gama muito maior de opções para node.js incluindo riachos, um zilhão de métodos de autenticação, etc ...Respostas:
A API de busca não está implementada no Nó.
Você precisa usar um módulo externo para isso, como busca de nó .
Instale-o no aplicativo Node como este
em seguida, coloque a linha abaixo na parte superior dos arquivos em que você está usando a API de busca:
fonte
var
é mutável, eu recomendo queconst
deve ser usado em vez disso ...Se precisar ser acessível com um escopo global
Esta é uma correção rápida e suja, tente eliminar o uso no código de produção.
fonte
fetch
e preenchesse automaticamente os métodos disponíveis. Concordou que deveria ser evitado na produção, mas muito útil para os desenvolvedores locais!Você pode usar cross-fetch de @lquixada
Instalar
Uso
Com promessas:
Com assíncrono / espera:
fonte
ReferenceError: fetch is not defined
erro deamazon-cognito-identity-js
.Para aqueles que também usam datilografado no node-js e estão recebendo um
ReferenceError: fetch is not defined
erronpm install
estes pacotes:Em seguida, inclua:
fonte
amazon-cognito-identity-js
não é relevante para esta pergunta e não é necessário instalar para solucionar esse erro. Também não está relacionado ao texto datilografado.Você precisa usar o
isomorphic-fetch
módulo no seuNode
projeto porqueNode
ainda não contémFetch API
. Para corrigir este problema, execute o comando abaixo:Após a instalação, use o código abaixo no seu projeto:
Espero que esta resposta ajude você.
fonte
O melhor é a biblioteca do Axios para buscar. use
npm i --save axios
for installng e use-o como buscar, basta escrever axios em vez de buscar e obter resposta em then () .fonte
O Node.js não implementou o método fetch (), mas você pode usar um dos módulos externos desse fantástico ambiente de execução para JavaScript.
Em uma das respostas acima, "busca de nó" é citada e é uma boa escolha.
Na pasta do seu projeto (o diretório em que você possui os scripts .js), instale esse módulo com o comando:
npm eu busca de nó - salvar
Em seguida, use-o como uma constante no script que você deseja executar com o Node.js, algo como isto:
busca constante = require ("busca do nó");
fonte
Este é o problema relacionado ao github Este bug está relacionado à versão 2.0.0, você pode resolvê-lo simplesmente atualizando para a versão 2.1.0. Você pode correr
npm i [email protected]
fonte
O seguinte funciona para mim no Node.js.x:
para inicializar a instância do Dropbox:
por exemplo, fazer upload de um conteúdo (um método assíncrono usado neste caso):
fonte