Desarrollo de API con Node.js y Comunicación Frontend-Backend
Clase 76 de 84 • Curso Gratis de Programación Básica
Resumen
Te encuentras desarrollando tu primer backend y tu primera API. Un backend está compuesto por múltiples endpoints que serán utilizados por el front-end. Es momento de conectar ambos mundos.
¿Qué es un endpoint?
Un nuevo término que debes conocer y que siempre te acompañará. Llamamos endpoint, o punto final, a cada URL que el backend exponer para que el front-end utilice, ya sea para la obtención de datos, creación, actualización, etc.
Cada acción que tu backend pueda realizar, la misma se ejecutará a través de un endpoint.
Creando tu primer endpoint
Crear un endpoint con ExpressJS para enviar datos a un cliente es muy sencillo. Ya tienes tu servidor levantado, al mismo vamos a agregarle endpoints para la obtención de datos.
const express = require('express');
const app = express();
const port = 3000;
// Endpoint para obtener datos
app.get('/datos', (req, res) => {
const datos = '12345';
res.send(datos);
});
app.listen(port, () => {
console.log(`¡Servidor listo!`);
});
Observa el endpoint /datos
, el mismo devuelve un número. Accede a este endpoint desde la URL localhost:3000/datos
y visualizarás los mismos en el navegador.
Pero la obtención de esta información por parte de un cliente no suele realizarse directamente por el navagador. En su lugar, utilizamos un cliente HTTP para lograr conectar en backend y el front-end.
Conexión de backend y front-end
Las consultas por parte de un front-end al backend se realizan por medio de un cliente HTTP. El mismo es una librería que te permitirá hacer consultas a los endpoints y obtener información.
Encontrarás muchos clientes HTTP en NPM. Para este ejemplo, usaremos uno llamado fetch
que es propio de Javascript y no tendremos que instalar ninguna dependencia.
En los archivos JS de tu front-end, puedes realizar solicitudes HTTP de la siguiente manera:
fetch('http://localhost:3000/datos')
.then(response => response.json())
.then(data => {
console.log(data); // 12345
});
Al ejecutar esta función asíncrona, obtendrás los datos del backend en la variable data
pudiendo manipular los mismos y mostrarlos en el HTML de tu página.
Problemas de CORS
Puedes tener con un problema trivial al querer realizar consultas a un backend. Mejor dicho… vas a tener este problema.
CORS es un pequeño problema con el que te toparás mil veces en tu vida como programador. Pero no te preocupes, es de fácil resolución.
La consola de desarrollo de los navegadores te permitirá obtener más información cuando las cosas no funcionen. Si te encuentras con un error similar a:

Indica un problema de CORS que significa, por sus siglas en español, Intercambio de Recursos de Origen Cruzado. Es una medida de seguridad de los backend para que no cualquier cliente, o cualquier front-end, realice consultas al mismo.
El backend debe permitir explícitamente que un cliente haga consultas, de lo contrario rechazará las mismas.
Habilita CORS instalando su respectiva dependencia con npm install cors
y realizando la importación de la misma.
// Importamos CORS
const cors = require('cors');
// Activamos CORS
app.use(cors());
De esta forma, el backend está listo para recibir consultas y el front-end podrá obtener los datos y trabajar con los mismos.
Conclusión
Acabas de dar tu primer paso en el desarrollo full-stack, o sea, en el desarrollo backend y front-end. ¡Felicidades!
Es solo el primer paso para integrar estos los dos mundos y poder visualizar en un front-end, los datos que el backend procesa o almacena en una base de datos.
Contribución creada por: Kevin Fiorentino (Platzi Contributor).