‫Instructor: Hola y bienvenido.
‫Entonces, finalmente es el momento de conectar la base de datos
‫MongoDB que creamos con nuestra aplicación Express.
‫Y el primer paso para
‫hacerlo es obtener nuestra cadena de conexión de Atlas.
‫Entonces, al igual que lo hicimos antes cuando conectamos la base
‫de datos a Compass y al Mongo
‫Shell, necesitamos obtener nuestra cadena
‫de conexión para conectar la aplicación a esta base de datos alojada.
‫Ahora, en caso de que no esté utilizando la base
‫de datos alojada en Atlas, también le
‫mostraré cómo conectar su base de datos local
‫con la aplicación un poco más adelante en este video.
‫De todos modos, simplemente haga clic aquí en Conectar su aplicación y
‫luego aquí está nuestra cadena de conexión.
‫Solo asegúrese de seleccionar Node. js aquí en realidad
‫porque la cadena podría cambiar en función de eso.
‫Ahora, también necesitamos la versión.
‫Y, por supuesto, son más de las tres.
‫Y entonces, sigamos adelante y copiemos nuestra cadena de conexión y
‫luego de vuelta en nuestra aplicación, la creamos
‫como una variable de entorno aquí en
‫nuestro archivo de configuración.
‫Entonces, ya tengo DATABASE_PASSWORD.
‫Creemos BASE DE DATOS ahora.
‫Y luego, ponga nuestra cuerda aquí.
‫Ahora, dos cosas sobre esta cadena de conexión.
‫Primero, aquí en este lugar, debemos ingresar nuestra contraseña.
‫Ahora, podríamos seguir adelante y copiar la contraseña de aquí
‫y luego pegarla aquí, pero prefiero
‫dejarla en una variable separada y luego
‫reemplazarla en el código.
‫En realidad, cambiaré esta contraseña aquí a una
‫contraseña en mayúsculas.
‫Entonces, CONTRASEÑA para hacerlo un poco más visible.
‫Luego, en segundo lugar, este es en realidad nuestro host, por
‫lo que básicamente es el lugar donde se aloja la base de
‫datos y luego / prueba.
‫Ahora, esta prueba aquí es el nombre de la base de
‫datos a la que queremos conectarnos.
‫Y, en nuestro caso, ya creamos la base de datos natours.
‫Veamos eso en realidad aquí en Compass.
‫Y, si vamos aquí a COLECCIONES,
‫entonces vemos que aquí, ya tenemos nuestra base de datos de natours.
‫Entonces, lo hicimos al final de la última sección.
‫¿Tu recuerdas?
‫Entonces, es muy importante que aquí,
‫en esta cadena de conexión, reemplacemos esta prueba con el nombre
‫de nuestra base de datos.
‫Entonces, natours, ¿de acuerdo?
‫Entonces, muy importante aquí, nuevamente, no
‫olvides poner esto aquí, de lo contrario,
‫no funcionará.
‫Ahora, en caso de que esté utilizando la base
‫de datos local como mencioné
‫antes, esta cadena de conexión es mucho más fácil.
‫Entonces,
‫creemos una variable para ese también, DATABASE_LOCAL.
‫Pero, nuevamente, si está usando esta cadena de base de datos
‫aquí, no necesita preocuparse por esta parte.
‫Solo estoy haciendo esto
‫en caso de que esté usando el local.
‫Entonces, en este caso, es bastante simple.
‫Es solo mongodb y esto es una especie de protocolo aquí.
‫Entonces, en lugar de http, Mongo usa estos como mongodb y protocolo
‫o algo así.
‫Luego, localhost y luego el
‫puerto, del que ya
‫hablamos un par de veces y es 27017, ¿recuerdas eso?
‫Y luego, como antes, también necesitamos
‫especificar el nombre de la base de datos, que
‫debería ser natours.
‫Ahora, para que esto funcione,
‫por supuesto, debe mantener su servidor MongoDB
‫para que el proceso Mongo D se ejecute en todo momento.
‫Entonces, cambiándolo al terminal.
‫Entonces, este proceso local aquí es al que me refiero.
‫Por lo tanto, nunca cierre este proceso, por lo tanto, esta ventana de terminal, cuando
‫esté trabajando con su base de datos local.
‫Entonces, de lo contrario, no funcionará.
‫Y eso es todo para la configuración.
‫A continuación, necesitamos instalar un controlador MongoDB, por
‫lo que básicamente es un software que permite que nuestro
‫código de nodo acceda e interactúe con una base de datos MongoDB.
‫Y hay un par de controladores MongoDB diferentes, pero
‫usaremos el que
‫yo diría que es el más
‫popular, que se llama Mongoose, que agrega un par
‫de características al controlador MongoDB más nativo.
‫Pero, no se preocupe, en
‫la próxima lección, aprenderá todo sobre Mongoose y por
‫qué lo estamos usando.
‫Por ahora, sigamos adelante e instálelo.
‫Entonces, mangosta, y la versión
‫que voy a usar es la versión
‫cinco, así que, por favor, instale la versión cinco también para
‫que estemos en la misma página con nuestro código aquí.
‫Entonces, para cuando esté viendo este
‫video, es posible que Mongoose seis, o incluso siete
‫tal vez, ya estén disponibles
‫y luego algo haya
‫cambiado y su código no funcione exactamente de la misma manera.
‫Por lo tanto, instale la versión cinco porque
‫en realidad es una versión bastante estable
‫en este momento y no
‫creo que vayan a agregar características muy importantes en
‫el futuro.
‫Entonces, en nuestro paquete. json, ahora debería estar aquí.
‫Entonces, 5. 5. 2, el tuyo probablemente sea un
‫poco más tarde, pero eso no debería ser un problema.
‫Vayamos ahora al servidor. js aquí, que, recuerde,
‫es una especie de archivo donde hacemos
‫toda la configuración de nuestra aplicación.
‫Por ejemplo, las variables de
‫entorno o las importaciones o la aplicación Express.
‫Y también iniciamos el servidor aquí.
‫Y entonces, este es
‫también el archivo donde configuraremos MongoDB.
‫Entonces, comencemos solicitando nuestro paquete de mangosta aquí.
‫Y entonces, ahora tenemos acceso a la
‫variable mangosta y ahí, simplemente llamamos al método de conexión.
‫Ahora, en este método de conexión, necesitamos, por
‫supuesto, pasar la cadena de conexión de nuestra base de datos.
‫Pero recuerda que, ahí dentro, todavía tenemos la contraseña.
‫Entonces, básicamente este marcador de posición de contraseña aquí.
‫Entonces, antes de pasar la
‫cadena, necesitamos reemplazarla.
‫Entonces, reemplácelo con la contraseña real que tenemos aquí.
‫Entonces, hagámoslo rápidamente.
‫Y simplemente llamaré a esta variable DB para database.
‫Y entonces, vayamos a nuestro proceso. env. BASE DE DATOS.
‫Entonces, esa es, por supuesto, nuestra variable donde se
‫almacena la cadena aquí.
‫Entonces, lo obtenemos y luego lo reemplazamos.
‫Y queremos reemplazar PASSWORD.
‫Esto aquí proviene del paquete HTML de etiqueta de cierre
‫que tengo en mi código VS.
‫Entonces, proceso. env. DATABASE_PASSWORD.
‫Dale una oportunidad.
‫Y está bien, eso tiene sentido.
‫Entonces, simplemente reemplazamos esta cadena de
‫marcador de posición con nuestra contraseña real en esta cadena de conexión.
‫Y entonces, ahora podemos usar esta variable
‫en nuestras mongoos. conectar().
‫Entonces, aquí, el primer argumento es
‫en realidad esa cadena de conexión, entonces DB.
‫Y luego, en segundo lugar, pasamos un objeto
‫con algunas opciones y estas son solo algunas de las
‫opciones que debemos especificar para lidiar con algunas advertencias de obsolescencia.
‫Entonces, no se preocupe demasiado por estos.
‫Entonces, useNewUrlParser, configúrelo en verdadero.
‫Luego, necesitamos usar useCreateIndex, también establecido en
‫true.
‫Y luego, useFindAndModify y configúrelo
‫en falso.
‫Entonces, nuevamente, estas son solo algunas opciones para
‫lidiar con algunas advertencias de depreciación.
‫Entonces, cuando esté creando sus
‫propias aplicaciones, siga adelante y use exactamente lo mismo.
‫Ahora, este método de conexión aquí
‫devolverá una promesa, así que manejemos esa promesa usando then ().
‫Y esta promesa aquí en realidad tiene acceso
‫a un objeto de conexión.
‫Entonces, llamémoslo simplemente con aquí para la conexión.
‫Entonces, básicamente esta
‫conexión será el valor resuelto de la promesa.
‫Entonces, solo para mostrarles que en realidad
‫estamos conectados, solo quiero registrar este objeto en la consola.
‫Entonces, consola. log connection y, de hecho,
‫quiero ver la propiedad de conexiones allí.
‫Y también podemos iniciar sesión en
‫la consola con algo como una conexión a la base de datos exitosa.
‫Salvarlo aquí.
‫Y luego, por supuesto, muestra estas advertencias aquí
‫debido a nuestro ESLint, pero no se preocupe por eso.
‫Así es como lo configuramos.
‫Entonces,
‫sigamos adelante y ejecutemos esta aplicación.
‫Ahora, déjame recordar qué tipo de guiones tenemos.
‫Entonces, tenemos start: dev y start: prod.
‫Ahora, dado que nuestro script aquí no solo
‫se llama start,
‫que es una especie de estándar, siempre tenemos que escribir npm run
‫start: dev en lugar de escribir solo npm start, sin la ejecución.
‫Entonces, déjeme seguir adelante
‫y cambiar el nombre aquí para comenzar.
‫Y luego, comenzamos la producción.
‫Entonces, npm start.
‫La aplicación se está ejecutando ahora.
‫Y, de hecho, nuestra conexión a la base de datos fue exitosa.
‫Que bien.
‫Y ahora, aquí tenemos nuestro objeto de conexiones
‫y, como puede ver, hay muchas cosas
‫aquí y podemos ver nuestro nombre de usuario aquí, host,
‫la contraseña, por supuesto.
‫Y estas cosas aquí realmente no importan, por supuesto.
‫Solo quería registrarlo aquí
‫para que veamos que nuestra conexión fue realmente exitosa.
‫Y entonces, deshagámonos de eso.
‫Y, de hecho, también podemos deshacernos de todo esto aquí.
‫Entonces, esto es solo una línea aquí.
‫Oh sí, solo falta este paréntesis.
‫Ahora, aquí, me dice que declaramos esta variable, pero
‫nunca la usamos, así que, de hecho, eliminémosla.
‫Ahora, como paso final,
‫permítame mostrarle cómo también podríamos conectarnos a
‫la base de datos local, nuevamente,
‫en caso de que esté usando esa.
‫Entonces, dupliquemos esta línea, coméntela.
‫Entonces, esta es la versión de la
‫base de datos alojada y luego aquí solo tendríamos que poner la local.
‫Entonces, eso es DATABASE_LOCAL.
‫Vamos a salvarlo.
‫Y también estamos conectados con éxito a ese.
‫Entonces, así es como lo haría en ese caso.
‫Pero, como dije, en este
‫curso, de hecho usaremos el alojado, así
‫que ese es el que me quedo aquí.
‫De hecho, estoy eliminando este.
‫Ya no lo necesitamos.
‫Ahora, por supuesto, también
‫podría haber problemas para conectarse a la base de datos.
‫Por ejemplo, el host podría estar
‫inactivo o podríamos tener algún error en nuestra cadena
‫de conexión y, en ese caso, deberíamos detectar ese error.
‫Pero dejaremos el manejo de
‫errores para un poco más adelante en
‫el curso y, por ahora, no tengo ningún método de captura aquí.
‫Solo el método entonces
‫aquí, asumiendo que todo funciona bien.
‫Y, finalmente, quiero continuar y eliminar
‫la colección que
‫ya creamos en nuestra base de
‫datos solo para que nuestro controlador Mongoose no interfiera
‫con eso de ninguna manera para que no haya ningún problema allí.
‫Entonces, volvamos a Atlas aquí.
‫Accede a nuestras COLECCIONES.
‫Y luego, simplemente elimine la colección de aquí.
‫Y ahora, necesitamos poner aquí el nombre de la
‫colección para no cometer ningún error aquí.
‫Entonces, suelte y, está bien.
‫Entonces, ahora tenemos una base de
‫datos vacía aquí, lista para comenzar a llenar con nuestros datos a
‫partir de los próximos videos.