He estado pensado estos días en hacer algunas sesiones totalmente prácticas. Ya sea paso a paso, o incluso con algún pequeño vídeo, para ver algunas cositas de “front en la vida real”. Y, puestos a pensar, también ha pasado por mi cabeza preparar antes el entorno back para que podamos atacarlo desde nuestro front, y vivir así la experiencia completa.
Y esto es lo que voy a hacer: dedicaré varios post a hablar de lo que vamos a utilizar para, posteriormente, subir a github (así le damos contenido al pobre) un back preparado para trabajar. Esta será la ruta a seguir:
- Base de datos: lo que toca hoy. Usaremos MongoDB.
- Express + Node: Express es el framework más popular de Node, y con ambos crearemos el servidor y su lógica. Nos conectaremos a la base de datos y prepararemos una API a consumir por el front.
- React, Angular (y a lo mejor Vue): el front propiamente dicho (de lo que se supone que va este blog). Consumiremos la API y presentaremos los datos en pantalla.
Podríamos utilizar numerosas APIs abiertas disponibles (te dejo un par de ellas algo frikis: https://pokeapi.co/, https://developer.marvel.com/), pero me parece más interesante conocer todo el ecosistema. Puede que descubras que algunas cosas no son tan difíciles como pensabas…
Y, como indicaba el título, hoy toca Mongo. Si has trabajado con bases de datos no relacionales, el planeta Mongo no supondrá ningún desafío para ti. Pero si (como mucha gente), tu contacto con las BBDD ha sido siempre con las relacionales, tendrás que cambiar la forma de pensar.
Mientras las relacionales almacenan los datos en tablas que se relacionan entre ellas mediante claves (“un escritor puede tener varios libros”, la tabla escritor tendrá un id que se usará en la tabla libros para relacionarlo con sus obras), las no relacionales se guardan en documentos, no usan identificadores que sirvan de relación entre conjuntos de datos. Podríamos hablar de las ventajas e inconvenientes de cada una, pero te lo dejo como tarea. Solo decirte que lo bueno de Mongo es que podrás interactuar con ella mediante javascript, teniendo todo el proyecto desde el back hasta el front en tu lenguaje de programación favorito.
Si, como yo, utilizas Visual Studio Code, te recomiendo que te instales esta extensión (ya sabes, Ver -> Extensiones):
Y tendrás disponible un interfaz gráfico para ver tus BBDD y sus contenidos de manera visual.
¿No te conecta? Eso es que no tienes instalado MongoDB… ¡blasfemo! Te dejo el enlace para que vayas directamente a la página de descargas y busques el MongoDB Community Server, que es el queremos para nuestras cositas: https://www.mongodb.com/try/download/community
Todo sigue el habitual “siguiente-siguiente” en la instalación. Solo un apunte que me parece importante: puedes decidir si instalarlo como servicio o ser tú el que lo levantes cuando sea necesario. Yo lo tengo manual, pero si te quieres evitar tener que ponerlo en marcha cada vez, la mejor opción es que sea un servicio que se arranque con el equipo.
Faltan un par de cositas:
- Crear el directorio C:/data/db requerida para trabajar con MongoDB (puedes configurar otra ubicación, pero con esto nos valdrá).
- En caso de que no lo hayas instalado como servicio, tendrás que levantarlo cuando vayas a necesitarlo. Tendrás que ir a una ruta similar a la que te muestro y ejecutar mongod.exe (create un acceso directo mejor):
Y ya tienes todo configurado. Trastea con el plugin y verás qué sencillo es crear bases de datos, documentos… tienes una opción “PLAYGROUNDS” para divertirte un poco. Cuando creemos nuestro back, utilizaremos Mongoose, una biblioteca de Javascript para trabajar con la base de datos (trabajando con esquemas y modelos). Ya sabes, ecosistema JS de principio a fin.
Hablaremos de Node y Express en el siguiente post. Si quieres ir mirándotelo, instalándolo y demás, todo tuyo. También me vale con que cotillees nuestro recién instalado MongoDB y juegues con él. Cualquier cosita, me comentas por aquí.
¡Hasta la semana que viene!