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.