CORS para JavaScript (Node.js): guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Biblioteca CORS para JavaScript (Node.js): Guia Completo

1. O que é e para que serve

CORS (Cross-Origin Resource Sharing) é um mecanismo de segurança implementado nos navegadores que controla o acesso a recursos (APIs, fontes, scripts) a partir de páginas web carregadas de um domínio diferente (origin). Por padrão, os navegadores bloqueiam requisições HTTP iniciadas por scripts (como fetch ou XMLHttpRequest) se forem direcionadas a um domínio diferente daquele que carregou a página. Isso previne ataques como CSRF (Cross-Site Request Forgery) e vazamento de dados.

A biblioteca cors para Node.js e Express é um middleware que permite aos desenvolvedores configurar e gerenciar políticas CORS no lado do servidor de forma fácil. Em vez de escrever manualmente os cabeçalhos (Access-Control-Allow-Origin, Access-Control-Allow-Methods, etc.) e lidar com requisições preflight (método OPTIONS), esta biblioteca automatiza todo o processo. Ela se integra à cadeia de processamento de requisições do Express e adiciona os cabeçalhos necessários às respostas.

Por que você precisa disso? Se você está desenvolvendo uma API em Node.js que será consumida por um frontend (React, Vue, Angular), um aplicativo mobile ou um serviço de terceiros rodando em outro domínio (ex.: api.meusite.com para app.meusite.com), você precisa configurar o CORS. Sem isso, o navegador simplesmente bloqueará as requisições, e o usuário verá um erro no console. A biblioteca cors torna essa configuração flexível, segura e simples.

2. Instalação

A instalação é feita através do gerenciador de pacotes npm (Node Package Manager). Certifique-se de ter o Node.js e o npm instalados.

npm install cors

Após a instalação, o pacote será adicionado à pasta node_modules, e uma entrada será criada no arquivo package.json.

Se você usa yarn:

yarn add cors

3. Início rápido — exemplo mínimo funcional

A maneira mais simples de usar CORS é habilitá-lo para todas as requisições. Isso é ideal para desenvolvimento ou APIs públicas onde o acesso é permitido de qualquer domínio.

const express = require('express');
const cors = require('cors');

const app = express();

// Habilita CORS para todas as rotas
app.use(cors());

app.get('/api/dados', (req, res) => {
    res.json({ mensagem: 'Esta resposta é permitida para todas as origens!' });
});

app.listen(3000, () => {
    console.log('Servidor rodando na porta 3000');
});

Neste exemplo, qualquer requisição de qualquer domínio (ex.: http://localhost:8080 ou https://exemplo.com) para /api/dados será processada com sucesso. O navegador não bloqueará a resposta.

4. Principais métodos/funções/classes

A biblioteca cors fornece uma função principal — cors(options) — que retorna uma função middleware. No entanto, as configurações são passadas através de um objeto options, o que oferece enorme flexibilidade. Vejamos 8 opções e métodos principais.

4.1. cors() — configuração básica (tudo permitido)

Assinatura: cors(options?: CorsOptions)

O que faz: Cria um middleware que adiciona cabeçalhos CORS à resposta. Sem argumentos, permite acesso de qualquer origem (*), qualquer método e qualquer cabeçalho.

Recommendations