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

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
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
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const

Como redirecionar para outra página com JavaScript

Como atualizar Node e npm para última versão
Neste artigo você vai aprender a como atualizar Node e npm para última versão, vamos utilizando uma estratégia bem simples Fala programador(a), bora aprender mais […]

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!
de nada =)