En los últimos tiempos, no han parado de salir frameworks y librerías JavaScript que nos permiten desarrollar la parte del frontend de las aplicaciones de una forma sencilla sin necesidad de usar librerías como JQuery o JavaScript puro para modificar el DOM de las páginas HTML con los datos que nos devuelven las APIs.
Estas librerías/frameworks se encargan de modificar el DOM por nosotros permitiéndonos hacer un código mucho más legible y mejor organizado. Y junto a estas librerías JavaScript se han formado paquetes de herramientas necesarias para desarrollar las aplicaciones completas.
Uno de estos stacks es el MERN, que se compone de las siguientes tecnologías:
MongoDB
MongoDB es una de las bases de datos NoSQL (no relacionales) más conocidas y usadas. Se encuentra en este stack porque es muy fácil integrarla con JavaScript debido a que los datos se guardan en documentos JSON, y pasar de un JSON a un objeto JavaScript es muy simple.
Node y Express
Con Node y Express vamos a poder construir la parte del backend. Se creará una API que se encargará de ver qué petición se ha hecho desde el cliente y reaccionará devolviendo unos datos, creando algún objeto nuevo en la BBDD, actualizándolo…
React
React es una librería JavaScript desarrollada por Facebook que nos va a permitir crear las interfaces de la aplicación en base a componentes. Desde los componentes se le pedirán los datos a la API, desarrollada con Node y Express, para mostrarlos.
También hace que sea muy fácil reaccionar a las acciones de los usuarios para realizar cambios en los componentes.
Conclusión
Hay otros stacks como este en los que solo cambia la tecnología que se encarga de la vista de la aplicación como el MEAN (con Angular) o el VENOM (con VUE).
Siempre que la aplicación que queremos desarrollar sea una buena opción para usar junto a Node y MongoDB deberíamos de elegir cualquiera de estos stacks, ya que con un solo lenguaje (en este caso JavaScript) podríamos desarrollarla entera sin necesidad de perder tiempo en aprender otros lenguajes. Cosa que ocurriría si usáramos Ruby on Rails, en el que es necesario tener conocimientos de Ruby, o Java+Spring, en el que necesitaríamos conocer Java.
Cualquiera de los tres stacks comentados anteriormente serían igual de válidos, lo único que cambia es la parte de la vista. Asimismo, las tres opciones tienen un gran respaldo por parte de grandes empresas y de la comunidad en general. ¿Algunas empresas que están usando el MERN stack? CyberCoders, Cognizant e Intellectyx.