Configuración de Variables de Entorno en Heroku para MongoDB
Clase 18 de 22 • Curso de NestJS: Autenticación con Passport y JWT
Resumen
¿Cómo desplegar una aplicación Node.js en Heroku utilizando MongoDB Atlas?
Desplegar aplicaciones en la nube puede parecer complejo al principio, pero con servicios como Heroku y MongoDB Atlas, el proceso se simplifica bastante. Aquí aprenderás a realizar un deployment de una aplicación Node.js en Heroku, usando MongoDB Atlas como la base de datos.
¿Qué necesitas configurar en tu aplicación?
Para preparar tu aplicación y desplegarla en Heroku, deberás realizar algunos ajustes claves en tu proyecto de Node.js. Asegúrate de seguir los siguientes pasos:
-
Archivo Main:
- Asegúrate de habilitar las CORS para recibir peticiones.
- Define el puerto a través de una variable de ambiente, por defecto Heroku asigna un puerto dinamico, normalmente el puerto 80.
-
Archivo package.json:
- Especifica la versión de Node.js que utilizarás, por ejemplo, la versión 14.
-
Archivo Procfile:
- Define el comando que ejecutará tu aplicación cuando sea desplegada.
¿Cómo se configura Heroku para el deployment?
Heroku permite interacciones tanto mediante interfaz gráfica como a través de la terminal. Para empezar el deployment, sigue estos pasos:
-
Creación del Proyecto:
- Usa el comando
heroku create
en la terminal. Esto generará una nueva aplicación con un dominio asignado.
heroku create
- Usa el comando
-
Repositorio de Heroku:
- Heroku crea automáticamente un repositorio donde se realizará el deployment. Asegúrate de estar en la rama
master
para ejecutar correctamente el comando de envío.
- Heroku crea automáticamente un repositorio donde se realizará el deployment. Asegúrate de estar en la rama
-
Realizar y enviar un commit:
- Realiza un
merge
de los cambios recientes y luego usa el comando:
git add . git commit -m "Descripción de los cambios" git push heroku master
- Realiza un
¿Cómo configurar las variables de entorno en Heroku?
Las variables de entorno son cruciales para la conexión con MongoDB Atlas. Puedes configurarlas de las siguientes maneras:
-
Desde la interfaz gráfica:
- Accede a la consola de Heroku y dirígete a las configuraciones del proyecto.
- Agrega las variables de entorno, asegurándote de que los valores como el nombre de la base de datos, usuario, host, y tipo de conexión sean correctos. Por ejemplo, el tipo de conexión para MongoDB Atlas es
mongodb+srv://
.
-
Desde la terminal:
- Usa el comando
heroku config:set
para definir variables de entorno. Esto facilita las modificaciones y los reinicios automáticos del proyecto.
heroku config:set JW_SECRET=my_secret_key
- Usa el comando
¿Qué ajustes se deben hacer en el código?
Cuando trabajas con bases de datos remotas como MongoDB Atlas, hay ciertas optimizaciones que puedes realizar:
-
Eliminar puertos de conexión:
- Las bases de datos remotas no requieren puertos en la conexión. Ajusta tu código para que el host incluya automáticamente el puerto en el desarrollo, pero no en producción.
-
Refactorización del código de conexión:
- Asegúrate de eliminar puertos específicos del archivo de configuración del proyecto. Redefine las conexiones para que, dependiendo del entorno, se gestionen de manera dinámica.
¿Cómo verificas que la aplicación se desplegó exitosamente?
Con la aplicación desplegada en Heroku, sigue estos métodos para comprobar que todo funciona correctamente:
-
Verificación de la URL de la aplicación:
- Accede a la URL proporcionada por Heroku para ver si la aplicación está activa y funcionando sin errores.
-
Pruebas mediante Insomnia:
- Usa una herramienta como Insomnia para realizar peticiones a los endpoints de tu aplicación.
- Verifica la creación de usuarios, autenticaciones, y otros endpoints configurados para asegurarte de que todos se conectan efectivamente con la base de datos en MongoDB Atlas.
-
Consulta en MongoDB Compass:
- Revisa los datos ingresados en MongoDB Compass para confirmar que se están guardando correctamente en tu base de datos administrada por MongoDB Atlas.
Implementar un proyecto en la nube con estas configuraciones no solo facilita su gestión, sino que también te permite escalar a un entorno productivo más robusto si es necesario. ¡No dudes en seguir explorando y mejorando tus habilidades!