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 >

Cómo utilizar MERN Stack: una guía completa

Necesitará acceso a la base de datos Atlas de MongoDB para este tutorial. Si no tiene una cuenta, puede registrarse gratis para seguirlo.

¡Empiece gratis!

Este tutorial le mostrará cómo crear una aplicación MERN de pila completa, en este caso, una base de datos de empleados, con las herramientas más recientes disponibles. Antes de comenzar, asegúrese de estar familiarizado con Node.js y React.js conceptos básicos. También necesitará acceso a una base de datos de MongoDB Atlas para este tutorial. El código completo está disponible en el repositorio de GitHub.

Tabla de contenidos

¿Qué es la pila MERN?

La pila MERN es un marco de desarrollo web formado por MongoDB, Express, React.js y Node.js. Es una de las varias variantes de la pila MEAN.

Cuando se utiliza la pila MERN, se trabaja con React para implementar la capa de presentación, Express y Node.js para crear la capa intermedia o de aplicación, y MongoDB para crear la capa de base de datos.

En este tutorial de pila MERN, utilizaremos estas cuatro tecnologías para desarrollar una aplicación básica que sea capaz de registrar la información de los empleados y mostrarla utilizando el front-end de React.

Cómo empezar a utilizar la pila MERN

Para empezar, tendrás que hacer lo siguiente:

Una ilustración que representa un video tutorial.

Si aprende de forma visual, consulte la versión en vídeo de este tutorial.

Configuración del proyecto

(Siéntase libre de codificar o descargar el código completo desde el repositorio de GitHub).

MERN nos permite crear soluciones full-stack. Así que, para aprovechar todo su potencial, crearemos un proyecto MERN Stack. Para este proyecto, crearemos tanto un back end como un front end. El front-end se implementará con React y el back-end se implementará con MongoDB, Node.js y Express. Llamaremos al cliente front-end y al servidor back-end.

Comencemos creando un directorio vacío: mern. Esta carpeta contendrá nuestras carpetas de cliente y servidor.

A continuación, cree una carpeta para el back-end y asígnele el nombre servidor. Luego, inicializaremos el archivo package.json usando npm init.

Para usar los módulos ECMAScript, el formato estándar oficialmente admitido para empaquetar código JavaScript para su reutilización, agregaremos una línea al archivo package.json .

También instalaremos las dependencias.

El comando anterior instala tres paquetes diferentes:

  • mongodb : el controlador de base de datos MongoDB que permite que sus aplicaciones Node.js se conecten a la base de datos y trabajen con datos.
  • express — el marco web para Node.js (nos hará la vida más fácil)
  • cors : un paquete de Node.js que permite el intercambio de recursos entre orígenes.

Podemos comprobar las dependencias instaladas en el archivo package.json. Debe enumerar los paquetes junto con sus versiones.

Una vez que nos hemos asegurado de que las dependencias se instalaron correctamente, creamos un archivo llamado server.js con el siguiente código:

mern/server/server.js

Aquí importamos express y cors para su uso. const port = process.env.PORT accederá a la variable port desde el config.env que crearemos a continuación.

Conexión a MongoDB Atlas

Es hora de conectar nuestro servidor a la base de datos. Utilizaremos MongoDB Atlas como base de datos. MongoDB Atlas es un servicio de base de datos basado en la nube que proporciona una sólida seguridad y fiabilidad de los datos. MongoDB Atlas proporciona un clúster de nivel gratuito que nunca caduca y le permite acceder a un subconjunto de características y funcionalidades de Atlas.

Siga la guía Introducción a Atlas para crear una cuenta, implementar el primer clúster y localizar la cadena de conexión del clúster.

Ahora que tiene la cadena de conexión, vuelva al directorio del servidor y cree un archivo config.env. Allí, asigne la cadena de conexión a una nueva variable ATLAS_URI . Una vez terminado, su archivo debería verse similar al que se muestra a continuación. Reemplace,< username > < < password > < clusterName > < projectId > > de contraseña, < > clusterName y < > projectId por el nombre de usuario, la contraseña, el nombre del clúster y el ID del proyecto de la base de datos.

mern/servidor/config.env

Cree una carpeta en el directorio del servidor llamada db y dentro de ella, un archivo llamado connection.js. Allí podemos añadir el siguiente código para conectarnos a nuestra base de datos:

mern/server/db/connection.js

Puntos de conexión de la API de servidor

Base de datos hecha. Servidor hecho. Ahora es el momento de los puntos finales de la API. Comencemos creando una carpeta de rutas y agregando record.js en ella. Navega de vuelta a tu directorio "servidor" y crea el nuevo directorio y archivo:

El archivo routes/record.js también tendrá las siguientes líneas de código:

mern/server/routes/record.js

Si ejecuta la aplicación en este punto, recibirá el siguiente mensaje en su terminal cuando se establezca la conexión. Tenga en cuenta que estamos utilizando la funcionalidad de variable de entorno incorporada de las últimas versiones de Node.js.

Eso es todo para el back-end. Ahora comenzaremos a trabajar en el frontend.

Configuración de la aplicación React

Para el front-end, usaremos Vite, una forma moderna de crear una aplicación React. En un nuevo terminal dentro del directorio mern , configuremos esto:

Hay algunas dependencias adicionales que se utilizarán en nuestro proyecto. Comenzaremos con Tailwind CSS.

A continuación, editaremos el campo de contenido en el archivo tailwind.config.js .

En el archivo src/index.css , necesitamos agregar las directivas Tailwind y eliminar todo lo demás.

Por último, instalaremos react-router-dom.

Tailwind es un marco CSS que da prioridad a las utilidades y que permite añadir estilos CSS utilizando nombres de clase predefinidos. ¡Y React Router agrega enrutamiento de páginas del lado del cliente a React!

Configuración del router React

Dentro de src/main.jsx, Agregaremos el siguiente código:

mern/cliente/src/main.jsx

Hemos configurado las rutas de la página de nuestra aplicación en la variable router y hemos utilizado RouterProvider para mantener nuestra interfaz de usuario sincronizada con la URL. RouterProvider ayuda con transiciones fluidas mientras se cambia entre componentes. Básicamente, solo volverá a cargar o actualizar el componente que debe cambiarse en lugar de actualizar o volver a cargar toda la página. Aunque React Router no es una necesidad, es importante si desea que su aplicación responda.

Creación de componentes

A continuación, vamos a crear los componentes que definimos en nuestras rutas. Crea una carpeta de componentes dentro de la carpeta src . Para cada componente que creamos, añadiremos un nuevo .js archivo dentro de la carpeta de componentes . En este caso, agregaremos Navbar.jsx, RecordList.jsx y ModifyRecord.jsx.

Las instantáneas a continuación muestran cómo se vería cada archivo.

Navbar.jsx

En el componente navbar.js, crearemos una barra de navegación que nos vinculará a los componentes requeridos mediante el siguiente código.

mern/cliente/src/componentes/Navbar.jsx

RecordList.jsx

El siguiente código servirá como componente de visualización para nuestros registros. Obtendrá todos los registros de nuestra base de datos a través de un método GET.

mern/cliente/src/componentes/RecordList.jsx

Registro.jsx

El siguiente código servirá como componente de formulario para crear o actualizar registros. Este componente enviará un comando de creación o un comando de actualización a nuestro servidor.

mern/cliente/src/componentes/Registro.jsx*

Ahora, agregamos lo siguiente al archivo src/App.jsx .

mern/cliente/src/App.jsx

Este es nuestro componente de diseño principal. Nuestra Navbar estará siempre en la parte superior de cada página y el Outlet aceptará los componentes hijos que definimos en nuestras rutas en el archivo main.jsx anteriormente.

Conectando el extremo frontal con el extremo posterior

Hemos completado el proceso de creación de componentes. También conectamos nuestra aplicación React al back-end usando fetch, que proporciona formas más limpias y fáciles de manejar solicitudes http. En Record.jsx, Agregamos el siguiente código al bloque onSubmit(e) . Cuando se envía una solicitud POST o PATCH a la URL, fetch agregará un nuevo registro a la base de datos o actualizará un registro existente en la base de datos.

También colocamos el siguiente bloque de código en Record.jsx debajo del bloque constructor para cargar un registro existente, si existe.

Por último, RecordList.jsx. RecordList.jsx recupera los registros de la base de datos, por lo que usaremos el método GET de fetch para recuperar registros de la base de datos. Para lograr esto, agregamos las siguientes líneas de código sobre la función RecordList() en RecordList.jsx.

Después de cerrar todo, para iniciar la aplicación, siga los pasos a continuación:

  • Asegúrese de que la aplicación de servidor siga ejecutándose. Si no es así, inícielo ejecutando el siguiente comando en el directorio del servidor :
  • En un nuevo terminal, vaya al directorio del cliente y ejecute el comando:

Este es el aspecto que tendrá la página de aterrizaje del componente de registro después de que hayamos añadido los registros de "Jesse Hall", "Kushagra Kesav" y "Stanimira Vlaeva" a través del botón "Crear empleado".

Así es como se verá la pantalla que te permite agregar un empleado:

Felicitaciones por crear su primera aplicación MERN. Para obtener más ideas y conceptos avanzados, visita nuestro Centro de desarrolladores y, si tienes alguna pregunta, publícala en nuestros foros de la comunidad.

Primeros pasos con MongoDB Atlas

Prueba gratuita
Más información