Anuncio¡Presentamos MongoDB 8.0, el MongoDB más rápido de la historia! Leer más >
AnuncioVoyage AI se une a MongoDB para potenciar aplicaciones de IA más precisas y confiables en Atlas. Más información >

Explicación de la pila de MERN

MERN es una de las variaciones de MEAN Stack (MongoDB, Express, Angular, Node), donde el marco de trabajo del frontend de Angular.js tradicional se reemplaza por React.js. Otras variantes incluyen MEVN (MongoDB, Express, Vue, Node) y, en realidad, cualquier marco de trabajo del frontend de JavaScript.

¿Listo para dar el siguiente paso? Configure su cuenta gratuita de MongoDB Atlas haciendo clic a continuación y pruebe nuestro tutorial de la pila de MERN para crear una aplicación MERN full stack en poco tiempo.

Empiece gratis

Pila de tecnología

Antes de sumergirnos en la pila de MERN, comprendamos rápidamente qué es una pila tecnológica. Una pila de tecnología es un conjunto de tecnologías que usted elige y utiliza para crear una aplicación web, una aplicación móvil o aplicaciones similares. Una buena pila tecnológica debe ofrecer una experiencia de usuario fluida, además de ser escalable y rentable. Una pila tecnológica típica contiene una interfaz, un backend y una base de datos y se conoce como pila tecnológica completa.

Por lo general, las tecnologías básicas de front-end o interfaz de usuario siguen siendo las mismas, es decir, HTML, CSS y JavaScript. Dependiendo de los requisitos del proyecto, puedes utilizar bibliotecas y frameworks, como React o Angular, que se basan en estas tecnologías de interfaz de usuario.

El back-end consiste en un servidor, donde reside la lógica de su aplicación. Puede escribir la lógica de la aplicación en uno o más lenguajes de programación como JavaScript, Java, Python o usar marcos como Django, Spring Express.js. Para ejecutar los programas, su aplicación necesita un tiempo de ejecución como Node.js, JRE (Java Runtime Environment).

La base de datos es el centro de almacenamiento, donde se almacenan todos los datos relacionados con la aplicación. Puede optar por almacenar sus datos en una estructura tabular (utilizando sistemas de bases de datos relacionales) o utilizando sistemas no relacionales, también llamados NoSQL, como la estructura de documentos, la estructura de gráficos, etc., y seleccionar la base de datos en consecuencia. Algunos ejemplos de bases de datos son MongoDB, Oracle, MySQL.

¿Qué es la pila MERN?

Una pila de tecnología puede ser personalizada (los desarrolladores pueden elegir las tecnologías en función de los requisitos de su proyecto) o preconstruida (cuando las tecnologías se han decidido previamente).

MERN es una pila de tecnología prediseñada basada en tecnologías JavaScript. MERN son las siglas de MongoDB, Express, React y Node, en honor a las cuatro tecnologías clave que componen la pila.

  • MongoDB: base de datos de documentos
  • Express(.js) — Node.js marco web
  • React(.js) — un marco de JavaScript del lado del cliente
  • Node(.js) — el principal servidor web JavaScript (tiempo de ejecución)

Express y Node conforman el nivel intermedio (aplicación). Express.js es un marco web del lado del servidor y Node.js es la popular y potente plataforma de servidores JavaScript. Independientemente de la variante que elija, ME(RVA)N es el enfoque ideal para trabajar con JavaScript y JSON, en todo momento.

¿Cómo funciona la pila MERN?

La arquitectura MERN le permite construir fácilmente una arquitectura de tres niveles (front-end, back-end, base de datos) utilizando completamente JavaScript y JSON.

React.js front-end

El nivel superior de la pila MERN es React.js, el marco de JavaScript declarativo para crear aplicaciones dinámicas del lado del cliente en HTML. React te permite crear interfaces complejas a través de componentes simples, conectarlos a datos en tu servidor back-end y renderizarlos como HTML.

El punto fuerte de React es el manejo de interfaces con estado, basadas en datos, con un mínimo de código y molestias, y tiene todas las características que esperarías de un marco web moderno: gran soporte para formularios, manejo de errores, eventos, listas y más.

Express.js y Node.js nivel de servidor

El siguiente nivel hacia abajo es el marco del lado del servidor Express.js, que se ejecuta dentro de un servidor Node.js. Express.js se promociona como un “marco web rápido, minimalista y sin opiniones para Node.js”, y eso es exactamente lo que es. Express.js cuenta con potentes modelos para el enrutamiento de URL (hacer coincidir una URL entrante con una función de servidor) y el manejo de solicitudes y respuestas HTTP.

Al realizar solicitudes HTTP XML (XHR), GET o POST desde su React.js front-end, puede conectarse a Express.js funciones que impulsan su aplicación. Esas funciones, a su vez, utilizan los controladores Node.js de MongoDB para acceder y actualizar los datos de su base de datos de MongoDB.

Nivel de base de datos de MongoDB

Si su aplicación almacena datos (perfiles de usuario, contenido, comentarios, cargas, eventos, etc.), entonces querrá una base de datos que sea tan fácil de trabajar como React, Express y Node.js.

Ahí es donde entra en juego MongoDB: los documentos JSON creados en su React.js front-end se pueden enviar al servidor Express.js, donde se pueden procesar y (suponiendo que sean válidos) almacenarse directamente en MongoDB para su posterior recuperación. Nuevamente, si estás construyendo en la nube, querrás mirar MongoDB Atlas. Si estás buscando configurar tu propia pila MERN, ¡sigue leyendo!

Ejemplo de una solicitud/respuesta simple utilizando la pila MERN

Una solicitud HTTP típica (de un cliente) realiza una de las 4 operaciones: POST, GET, PUT, DELETE correspondientes a las cuatro operaciones de base de datos: Crear, Leer, Actualizar y Eliminar (CRUD) respectivamente. Para atender estas solicitudes, el Express.js proporciona objetos de solicitud y respuesta que almacenan los parámetros necesarios. La solicitud HTTP almacena los datos proporcionados por el usuario final y la respuesta HTTP almacena los datos que se recuperan de la base de datos.

Con el controlador de Node.js de MongoDB , puede conectar fácilmente sus implementaciones de MongoDB a la aplicación en unos sencillos pasos.

Una de las características más importantes de la pila MERN es que todas las tecnologías almacenan datos en el mismo formato.

La capa front-end, React, almacena los datos como un objeto JavaScript, la capa back-end (aplicación) utiliza código JavaScript y la capa de datos MongoDB almacena los datos en formato BSON (Binary JavaScript ON). Express convierte datos entre JS y JSON usando el .json() método.

Node.js permite a los desarrolladores escribir la lógica de las aplicaciones de fondo (del lado del servidor) en JavaScript. Aunque Node.js proporciona módulos http principales, escribir lo mismo en Express proporciona una experiencia de código más limpia. Express también proporciona potentes funciones de enrutamiento para obtener los datos necesarios desde el punto final correcto, otro lugar donde los desarrolladores no necesitan escribir código explícito para el enrutamiento.

Dado que el código está escrito en el mismo lenguaje (JavaScript) de principio a fin, se ahorra mucho tiempo que, de otro modo, se destinaría a conversiones durante la transición de una capa a otra.

Supongamos que un cliente (cliente) quiere actualizar su número de móvil a través de un portal en línea. El frontend, construido con React.js, tendría un formulario donde el usuario puede ingresar el número de teléfono móvil. React utiliza el enlace " UseState " para establecer el número de teléfono móvil introducido por el cliente en el parámetro de solicitud.

El código Express.js toma el número de móvil de la solicitud put http, lo asigna al esquema del modelo de datos de la aplicación y aplica el método correspondiente (por ejemplo, findByIdAndUpdate()) para realizar la operación de actualización. A continuación, la respuesta se envía a través del objeto de respuesta http con un mensaje de éxito/error.

Un ejemplo completo está disponible en la página del tutorial de la pila MERN .

Desarrollo de pila MERN vs. desarrollo de pila completa

La pila MERN es un tipo de pila completa, en la que las capas de tecnología están predefinidas. Un desarrollador full stack tiene una curva de aprendizaje más alta, ya que tiene que ser experto en varias tecnologías, mientras que un desarrollador de MERN solo necesita conocer las tecnologías correspondientes. Las siguientes diferencias importantes le ayudarán a elegir entre una pila completa personalizada y una pila MERN, según los requisitos de su proyecto:

Pila de MERN

  • Pila predefinida de tecnologías que se sabe que funcionan bien juntas.
  • La atención se centra en JavaScript y en las tecnologías y marcos de trabajo basados en JavaScript
  • Enfoque de desarrollo simplificado y unificado.
  • Fomenta la reutilización del código gracias a los componentes de un solo idioma que se pueden utilizar en todo.

Pila completa

  • Los diseñadores eligen diferentes tecnologías en función de los requisitos de un proyecto.
  • Requiere un conjunto de habilidades más amplio que se aprenderán según el proyecto.
  • Más flexibilidad en la elección de herramientas y marcos de trabajo para el desarrollo.
  • Promueve la flexibilidad y la versatilidad, ya que los desarrolladores pueden manejar diferentes aspectos de la aplicación.

¿Cuándo elegir la pila de MERN?

Si los plazos de sus proyectos son estrictos y los requisitos están bien definidos, la pila de MERN es la opción ideal, ya que ahorra tiempo y costos, y ayuda a los desarrolladores a integrarse rápidamente, ya que tienen que centrarse en aprender solo una tecnología. Además, el mantenimiento a largo plazo de un proyecto podría resultar más fácil con la pila de MERN, debido a su enfoque estructurado y bien establecido y a la extensa documentación.

La pila de MERN funciona bien para cualquier posible caso de uso o requisito de proyecto que tenga, ya que todos los componentes (MERN) ofrecen potentes capacidades y funcionalidades. El único momento en el que no puede elegir la pila de MERN es cuando quiere utilizar tecnologías distintas de JavaScript.

¿Por qué elegir la pila de MERN?

Empecemos por MongoDB, la base de datos de documentos que está en la raíz de la pila de MERN. MongoDB se diseñó para almacenar datos JSON de forma nativa. (Técnicamente, utiliza una versión binaria de JSON llamada BSON). Todo, desde su interfaz de línea de comandos hasta su lenguaje de la query, se basa en JSON y JavaScript.

MongoDB funciona extremadamente bien con Node.js y hace que almacenar, manipular y representar datos JSON en cada nivel de su aplicación sea muy fácil. En el caso de las aplicaciones nativas de la cloud, MongoDB Atlas lo hace aún más fácil al brindarle un clúster MongoDB de escalado automático en el proveedor de la cloud de su elección con solo unos pocos clics.

Express.js (que se ejecuta en Node.js) y React.js hacen que la aplicación JavaScript/JSON MERN sea full stack, bueno, full. Express.js es un marco de trabajo de aplicaciones del lado del servidor que envuelve las solicitudes y respuestas HTTP y facilita la asignación de URL a funciones del lado del servidor. React.js es un marco de trabajo del frontend de JavaScript para crear interfaces de usuario interactivas en HTML y comunicarse con un servidor remoto.

La combinación significa que los datos de JSON fluyen de forma natural de principio a fin, lo que facilita la compilación y es razonablemente sencillo de depurar. Además, solo tiene que conocer un lenguaje de programación y la estructura del documento JSON para entender todo el sistema.

MERN es la pila elegida por los desarrolladores web de hoy en día que buscan moverse rápidamente, en especial para aquellos con React.js experiencia.

Casos de uso de MERN

Al igual que cualquier pila web, puede crear lo que quiera en MERN, aunque es ideal para casos que requieren mucho JSON, son nativos de la cloud y tienen interfaces web dinámicas. Algunos ejemplos son la gestión del flujo de trabajo, la agregación de noticias, las aplicaciones y calendarios de tareas pendientes, los foros interactivos o los productos de redes sociales, ¡y cualquier otra cosa que se le ocurra!

Resumen

El objetivo de la pila de MERN es simplificar toda la pila tecnológica, al predeterminar las tecnologías. Los desarrolladores y diseñadores no tienen por qué pasar por la molestia de decidir qué tecnologías se deben utilizar para cada caso de negocio. Además, no necesitan aprender o contratar a varias personas que conozcan las diferentes tecnologías, ni poner la responsabilidad en una sola persona. Con una MERN Stack, cualquiera puede crear aplicaciones simples o complejas con solo conocer un puñado de tecnologías. Esto hace que la producción sea más rápida y ahorra costos generales, sin comprometer la escalabilidad, el rendimiento y la seguridad.

Preguntas frecuentes

Comience gratis con MongoDB Atlas

Ejecute MongoDB en la cloud de forma gratuita con MongoDB Atlas. No necesita tarjeta de crédito.
Empiece gratis