CORS es necesario para compartir recursos en distintos dominios. Hoy vamos a ver cómo habilitar CORS con Node.js al usar express.
Sé que CORS no es una cosa “que se habilite” pero encuentro facilidad al decirlo de este modo. De hecho lo que se hace es responder con un encabezado indicando cuáles dominios se permiten para compartir recursos.
Bien, veamos cómo configurar CORS con Node.
Instalando CORS
Comenzamos instalando el paquete de cors con Node package manager:
npm install --save cors
Usar cors
Ahora lo importamos:
const cors = require("cors");
Y lo usamos como middleware:
app.use(cors());
Con eso ya podrás compartir recursos en distintos dominios y orígenes. Sigue leyendo para ver un ejemplo más completo y cómo permitir cierto dominio.
Nota: la variable app es la que creas con express, con algo como const app = express();
Configurando cors
Al indicar el uso del middleware de cors puedes indicar el dominio. En mi caso, como estoy conectando una app de angular, solo quiero que se acepten las peticiones desde localhost:4200 así que:
const DIRECTORIO_PERMITIDO_CORS = "http://localhost:4200";
app.use(cors({
origin: DIRECTORIO_PERMITIDO_CORS
}));
Como puedes ver, el dominio se indica en origin
. Me parece que igualmente se pueden configurar varios dominios con una función, pero eso es cosa de otro post.