Como resolver RefernceError: fetch is not defined

Neste artigo você vai aprender a como resolver RefernceError: fetch is not defined, um erro que pode acontecer no Node.js

resolver RefernceError: fetch is not defined capa

Fala programador(a), beleza? Bora aprender mais sobre os erros de Node.js!

Esse erro de referência ocorre pois o Node.js em suas versões mais antigas não tem a fetch API implementada

Porém isso está cada vez mais se tornando uma realidade, então logo logo devemos ter esse como um módulo core

Enquanto isso não acontece ou você não pode atualizar a versão do Node

Precisa instalar o pacote node-fetch

Este nos dará a possibilidade de executar a fetch API nos programas de Node

O comando é o seguinte:

npm install node-fetch

Depois basta importar com

import fetch from "node-fetch";

Agora você consegue utilizar esta API nos seus programas! 🙂

Conclusão

No artigo de hoje viu como resolver RefernceError: fetch is not defined

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

Instalamos a biblioteca node-fetch e a importamos no nosso software

Este erro ocorre pois a fetch API ainda não está implementada no Node, então temos que instalar um módulo externo

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias! Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias. O link acima contém um cupom de desconto para os cursos

<h2>Antes de instalar nada, descubra ONDE o erro aconteceu:</h2> <p>O ReferenceError: fetch is not defined aparece porque o seu código rodou num ambiente que não tinha a fetch API disponível ali</p> <p>E aqui mora a pegadinha que pega muita gente: nem sempre o ambiente que rodou é o que você acha que rodou</p> <p>Você pode ter uma versão do Node instalada na sua máquina e o projeto executar dentro de um container, de um pipeline de CI ou de um servidor com uma versão bem diferente da sua</p> <p>Quem usa gerenciador de versões do Node também troca de versão sem perceber, dependendo do terminal que estiver aberto naquele momento</p> <p>Então o primeiro passo é identificar qual Node executou o script que quebrou, e não qual Node você tem instalado</p> <p>Se forem diferentes, tu pode estar caçando um problema que só existe de um dos lados, e nenhuma instalação vai resolver isso</p> <p>Tome cuidado! Já dá pra economizar bastante tempo só com essa checagem 🙂</p>

<h2>E quando o erro aparece fora de um script Node comum?</h2> <p>Esse mesmo erro não fica só no seu arquivo .js rodado na mão</p> <p>Ele costuma pintar em três cenários que confundem bastante:</p> <p><strong>1. Rodando testes:</strong> o runner de testes monta um ambiente próprio pro seu código, e esse ambiente simulado nem sempre tem as mesmas APIs globais do lugar onde a aplicação roda de verdade</p> <p><strong>2. Código compartilhado entre front e back:</strong> um trecho que funciona no navegador quebra quando o mesmo arquivo é executado no servidor, porque quem fornece o fetch ali é outro</p> <p><strong>3. Runtimes e ambientes de deploy:</strong> plataformas de execução têm cada uma o seu conjunto de globais disponíveis, então vale abrir a documentação do ambiente específico antes de sair instalando pacote</p> <p>A lógica é sempre a mesma: o fetch não é uma função da sua aplicação, é algo que o ambiente precisa te entregar</p> <p>Se o ambiente não entrega, tu traz de fora (é aí que entra o node-fetch, logo abaixo) ou muda o ambiente</p>

<h3>Instalei o node-fetch e agora quebrou o import:</h3> <p>Caso o erro mude de cara depois da instalação, respira que isso é comum</p> <p>Quando o import acima reclama, o problema deixou de ser o fetch e virou formato de módulo do seu projeto</p> <p>Existem dois formatos convivendo no ecossistema JavaScript: o que usa <code>import</code> e o que usa <code>require</code></p> <p>Se o seu projeto é do time do <code>require</code>, o import de cima não vai encaixar direto, e a mensagem de erro vai falar de módulo, não mais de fetch</p> <p>A forma correta de importar depende da versão do pacote que ficou instalada no seu projeto, então o caminho seguro aqui é abrir a documentação do node-fetch e usar o exemplo que corresponde à versão que tu instalou</p> <p>Parece detalhe, mas é o ponto onde a maioria trava depois de "resolver" o erro original</p>

<h2>Checklist rápido pra não ficar no chute:</h2> <p>Antes de fechar a aba, roda esse checklist mental:</p> <p>1. Qual ambiente executou o código que quebrou (sua máquina, container, CI, servidor)?</p> <p>2. A versão do Node desse ambiente é a mesma que tu tem instalada localmente?</p> <p>3. O erro é no seu código de aplicação ou dentro do ambiente de testes?</p> <p>4. Se instalou o node-fetch, o formato de importação bate com o formato de módulo do projeto?</p> <p>Respondendo essas quatro, ou o erro some ou tu já sabe exatamente onde ele mora</p>

Leia também

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

2 Comentários
Oldest
Newest Most Voted
Ysh-rael

Sensacional! fui desenvolver a mesma API em outra máquina, e começou a dar esse erro. De fato, uso versões diferentes do node e por isso o erro. parabéns pelo conteúdo!

Battisti

de nada =)

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares