CORS con Node y Express

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *