﻿1
00:00:01,140 --> 00:00:02,980
‫Instructor: Hola y bienvenido.

2
00:00:02,980 --> 00:00:07,000
‫Entonces, finalmente es el momento de conectar la base de datos

3
00:00:07,000 --> 00:00:10,123
‫MongoDB que creamos con nuestra aplicación Express.

4
00:00:11,760 --> 00:00:13,880
‫Y el primer paso para

5
00:00:13,880 --> 00:00:16,850
‫hacerlo es obtener nuestra cadena de conexión de Atlas.

6
00:00:16,850 --> 00:00:20,620
‫Entonces, al igual que lo hicimos antes cuando conectamos la base

7
00:00:20,620 --> 00:00:23,230
‫de datos a Compass y al Mongo

8
00:00:23,230 --> 00:00:25,460
‫Shell, necesitamos obtener nuestra cadena

9
00:00:25,460 --> 00:00:29,760
‫de conexión para conectar la aplicación a esta base de datos alojada.

10
00:00:29,760 --> 00:00:32,310
‫Ahora, en caso de que no esté utilizando la base

11
00:00:32,310 --> 00:00:34,300
‫de datos alojada en Atlas, también le

12
00:00:34,300 --> 00:00:36,410
‫mostraré cómo conectar su base de datos local

13
00:00:36,410 --> 00:00:38,760
‫con la aplicación un poco más adelante en este video.

14
00:00:39,840 --> 00:00:43,670
‫De todos modos, simplemente haga clic aquí en Conectar su aplicación y

15
00:00:43,670 --> 00:00:46,430
‫luego aquí está nuestra cadena de conexión.

16
00:00:46,430 --> 00:00:49,160
‫Solo asegúrese de seleccionar Node. js aquí en realidad

17
00:00:49,160 --> 00:00:51,460
‫porque la cadena podría cambiar en función de eso.

18
00:00:53,290 --> 00:00:54,770
‫Ahora, también necesitamos la versión.

19
00:00:54,770 --> 00:00:57,050
‫Y, por supuesto, son más de las tres.

20
00:00:57,050 --> 00:01:00,780
‫Y entonces, sigamos adelante y copiemos nuestra cadena de conexión y

21
00:01:00,780 --> 00:01:03,440
‫luego de vuelta en nuestra aplicación, la creamos

22
00:01:03,440 --> 00:01:05,700
‫como una variable de entorno aquí en

23
00:01:05,700 --> 00:01:07,390
‫nuestro archivo de configuración.

24
00:01:07,390 --> 00:01:09,590
‫Entonces, ya tengo DATABASE_PASSWORD.

25
00:01:09,590 --> 00:01:11,133
‫Creemos BASE DE DATOS ahora.

26
00:01:12,440 --> 00:01:14,410
‫Y luego, ponga nuestra cuerda aquí.

27
00:01:14,410 --> 00:01:17,010
‫Ahora, dos cosas sobre esta cadena de conexión.

28
00:01:17,010 --> 00:01:21,140
‫Primero, aquí en este lugar, debemos ingresar nuestra contraseña.

29
00:01:21,140 --> 00:01:24,010
‫Ahora, podríamos seguir adelante y copiar la contraseña de aquí

30
00:01:24,010 --> 00:01:25,970
‫y luego pegarla aquí, pero prefiero

31
00:01:25,970 --> 00:01:28,050
‫dejarla en una variable separada y luego

32
00:01:28,050 --> 00:01:29,693
‫reemplazarla en el código.

33
00:01:30,640 --> 00:01:33,950
‫En realidad, cambiaré esta contraseña aquí a una

34
00:01:33,950 --> 00:01:35,813
‫contraseña en mayúsculas.

35
00:01:38,045 --> 00:01:41,030
‫Entonces, CONTRASEÑA para hacerlo un poco más visible.

36
00:01:41,030 --> 00:01:44,070
‫Luego, en segundo lugar, este es en realidad nuestro host, por

37
00:01:44,070 --> 00:01:47,400
‫lo que básicamente es el lugar donde se aloja la base de

38
00:01:47,400 --> 00:01:49,123
‫datos y luego / prueba.

39
00:01:50,384 --> 00:01:53,320
‫Ahora, esta prueba aquí es el nombre de la base de

40
00:01:53,320 --> 00:01:54,940
‫datos a la que queremos conectarnos.

41
00:01:54,940 --> 00:01:58,093
‫Y, en nuestro caso, ya creamos la base de datos natours.

42
00:01:59,030 --> 00:02:03,100
‫Veamos eso en realidad aquí en Compass.

43
00:02:03,100 --> 00:02:05,173
‫Y, si vamos aquí a COLECCIONES,

44
00:02:06,020 --> 00:02:09,880
‫entonces vemos que aquí, ya tenemos nuestra base de datos de natours.

45
00:02:09,880 --> 00:02:12,400
‫Entonces, lo hicimos al final de la última sección.

46
00:02:12,400 --> 00:02:13,360
‫¿Tu recuerdas?

47
00:02:13,360 --> 00:02:15,180
‫Entonces, es muy importante que aquí,

48
00:02:15,180 --> 00:02:18,260
‫en esta cadena de conexión, reemplacemos esta prueba con el nombre

49
00:02:18,260 --> 00:02:19,893
‫de nuestra base de datos.

50
00:02:21,300 --> 00:02:23,630
‫Entonces, natours, ¿de acuerdo?

51
00:02:23,630 --> 00:02:25,810
‫Entonces, muy importante aquí, nuevamente, no

52
00:02:25,810 --> 00:02:28,690
‫olvides poner esto aquí, de lo contrario,

53
00:02:28,690 --> 00:02:29,893
‫no funcionará.

54
00:02:30,830 --> 00:02:33,180
‫Ahora, en caso de que esté utilizando la base

55
00:02:33,180 --> 00:02:34,760
‫de datos local como mencioné

56
00:02:34,760 --> 00:02:37,033
‫antes, esta cadena de conexión es mucho más fácil.

57
00:02:37,920 --> 00:02:39,320
‫Entonces,

58
00:02:39,320 --> 00:02:44,320
‫creemos una variable para ese también, DATABASE_LOCAL.

59
00:02:44,500 --> 00:02:47,490
‫Pero, nuevamente, si está usando esta cadena de base de datos

60
00:02:47,490 --> 00:02:49,540
‫aquí, no necesita preocuparse por esta parte.

61
00:02:49,540 --> 00:02:50,780
‫Solo estoy haciendo esto

62
00:02:50,780 --> 00:02:52,680
‫en caso de que esté usando el local.

63
00:02:52,680 --> 00:02:54,793
‫Entonces, en este caso, es bastante simple.

64
00:02:55,940 --> 00:03:00,380
‫Es solo mongodb y esto es una especie de protocolo aquí.

65
00:03:00,380 --> 00:03:04,280
‫Entonces, en lugar de http, Mongo usa estos como mongodb y protocolo

66
00:03:04,280 --> 00:03:05,603
‫o algo así.

67
00:03:07,230 --> 00:03:09,720
‫Luego, localhost y luego el

68
00:03:09,720 --> 00:03:12,110
‫puerto, del que ya

69
00:03:12,110 --> 00:03:16,770
‫hablamos un par de veces y es 27017, ¿recuerdas eso?

70
00:03:16,770 --> 00:03:18,640
‫Y luego, como antes, también necesitamos

71
00:03:18,640 --> 00:03:21,430
‫especificar el nombre de la base de datos, que

72
00:03:21,430 --> 00:03:22,870
‫debería ser natours.

73
00:03:23,880 --> 00:03:25,820
‫Ahora, para que esto funcione,

74
00:03:25,820 --> 00:03:28,100
‫por supuesto, debe mantener su servidor MongoDB

75
00:03:28,100 --> 00:03:31,563
‫para que el proceso Mongo D se ejecute en todo momento.

76
00:03:33,890 --> 00:03:35,790
‫Entonces, cambiándolo al terminal.

77
00:03:35,790 --> 00:03:38,943
‫Entonces, este proceso local aquí es al que me refiero.

78
00:03:39,930 --> 00:03:43,440
‫Por lo tanto, nunca cierre este proceso, por lo tanto, esta ventana de terminal, cuando

79
00:03:43,440 --> 00:03:45,690
‫esté trabajando con su base de datos local.

80
00:03:46,623 --> 00:03:49,190
‫Entonces, de lo contrario, no funcionará.

81
00:03:49,190 --> 00:03:51,470
‫Y eso es todo para la configuración.

82
00:03:51,470 --> 00:03:54,480
‫A continuación, necesitamos instalar un controlador MongoDB, por

83
00:03:54,480 --> 00:03:57,540
‫lo que básicamente es un software que permite que nuestro

84
00:03:57,540 --> 00:04:01,170
‫código de nodo acceda e interactúe con una base de datos MongoDB.

85
00:04:01,170 --> 00:04:04,050
‫Y hay un par de controladores MongoDB diferentes, pero

86
00:04:04,050 --> 00:04:05,320
‫usaremos el que

87
00:04:05,320 --> 00:04:07,320
‫yo diría que es el más

88
00:04:07,320 --> 00:04:10,340
‫popular, que se llama Mongoose, que agrega un par

89
00:04:10,340 --> 00:04:12,873
‫de características al controlador MongoDB más nativo.

90
00:04:13,770 --> 00:04:15,290
‫Pero, no se preocupe, en

91
00:04:15,290 --> 00:04:17,650
‫la próxima lección, aprenderá todo sobre Mongoose y por

92
00:04:17,650 --> 00:04:18,903
‫qué lo estamos usando.

93
00:04:19,840 --> 00:04:22,040
‫Por ahora, sigamos adelante e instálelo.

94
00:04:24,930 --> 00:04:26,790
‫Entonces, mangosta, y la versión

95
00:04:26,790 --> 00:04:29,020
‫que voy a usar es la versión

96
00:04:29,020 --> 00:04:32,280
‫cinco, así que, por favor, instale la versión cinco también para

97
00:04:32,280 --> 00:04:35,480
‫que estemos en la misma página con nuestro código aquí.

98
00:04:35,480 --> 00:04:37,490
‫Entonces, para cuando esté viendo este

99
00:04:37,490 --> 00:04:40,360
‫video, es posible que Mongoose seis, o incluso siete

100
00:04:40,360 --> 00:04:42,140
‫tal vez, ya estén disponibles

101
00:04:42,140 --> 00:04:43,620
‫y luego algo haya

102
00:04:43,620 --> 00:04:47,261
‫cambiado y su código no funcione exactamente de la misma manera.

103
00:04:47,261 --> 00:04:49,460
‫Por lo tanto, instale la versión cinco porque

104
00:04:49,460 --> 00:04:51,450
‫en realidad es una versión bastante estable

105
00:04:51,450 --> 00:04:53,210
‫en este momento y no

106
00:04:53,210 --> 00:04:55,600
‫creo que vayan a agregar características muy importantes en

107
00:04:55,600 --> 00:04:56,433
‫el futuro.

108
00:04:57,430 --> 00:05:00,630
‫Entonces, en nuestro paquete. json, ahora debería estar aquí.

109
00:05:00,630 --> 00:05:04,720
‫Entonces, 5. 5. 2, el tuyo probablemente sea un

110
00:05:04,720 --> 00:05:06,663
‫poco más tarde, pero eso no debería ser un problema.

111
00:05:08,450 --> 00:05:11,660
‫Vayamos ahora al servidor. js aquí, que, recuerde,

112
00:05:11,660 --> 00:05:14,020
‫es una especie de archivo donde hacemos

113
00:05:14,020 --> 00:05:16,190
‫toda la configuración de nuestra aplicación.

114
00:05:16,190 --> 00:05:18,260
‫Por ejemplo, las variables de

115
00:05:18,260 --> 00:05:21,410
‫entorno o las importaciones o la aplicación Express.

116
00:05:21,410 --> 00:05:23,400
‫Y también iniciamos el servidor aquí.

117
00:05:23,400 --> 00:05:24,820
‫Y entonces, este es

118
00:05:24,820 --> 00:05:26,830
‫también el archivo donde configuraremos MongoDB.

119
00:05:29,350 --> 00:05:32,363
‫Entonces, comencemos solicitando nuestro paquete de mangosta aquí.

120
00:05:41,740 --> 00:05:44,900
‫Y entonces, ahora tenemos acceso a la

121
00:05:44,900 --> 00:05:48,563
‫variable mangosta y ahí, simplemente llamamos al método de conexión.

122
00:05:49,630 --> 00:05:51,920
‫Ahora, en este método de conexión, necesitamos, por

123
00:05:51,920 --> 00:05:54,513
‫supuesto, pasar la cadena de conexión de nuestra base de datos.

124
00:05:55,360 --> 00:05:58,990
‫Pero recuerda que, ahí dentro, todavía tenemos la contraseña.

125
00:05:58,990 --> 00:06:01,730
‫Entonces, básicamente este marcador de posición de contraseña aquí.

126
00:06:01,730 --> 00:06:03,620
‫Entonces, antes de pasar la

127
00:06:03,620 --> 00:06:05,353
‫cadena, necesitamos reemplazarla.

128
00:06:06,300 --> 00:06:09,100
‫Entonces, reemplácelo con la contraseña real que tenemos aquí.

129
00:06:10,710 --> 00:06:12,203
‫Entonces, hagámoslo rápidamente.

130
00:06:15,500 --> 00:06:19,970
‫Y simplemente llamaré a esta variable DB para database.

131
00:06:19,970 --> 00:06:24,970
‫Y entonces, vayamos a nuestro proceso. env. BASE DE DATOS.

132
00:06:26,220 --> 00:06:29,320
‫Entonces, esa es, por supuesto, nuestra variable donde se

133
00:06:29,320 --> 00:06:30,920
‫almacena la cadena aquí.

134
00:06:32,570 --> 00:06:35,873
‫Entonces, lo obtenemos y luego lo reemplazamos.

135
00:06:38,580 --> 00:06:41,083
‫Y queremos reemplazar PASSWORD.

136
00:06:42,600 --> 00:06:46,330
‫Esto aquí proviene del paquete HTML de etiqueta de cierre

137
00:06:46,330 --> 00:06:48,653
‫que tengo en mi código VS.

138
00:06:51,660 --> 00:06:54,393
‫Entonces, proceso. env. DATABASE_PASSWORD.

139
00:06:59,480 --> 00:07:00,630
‫Dale una oportunidad.

140
00:07:00,630 --> 00:07:02,610
‫Y está bien, eso tiene sentido.

141
00:07:02,610 --> 00:07:04,860
‫Entonces, simplemente reemplazamos esta cadena de

142
00:07:04,860 --> 00:07:08,563
‫marcador de posición con nuestra contraseña real en esta cadena de conexión.

143
00:07:09,602 --> 00:07:11,680
‫Y entonces, ahora podemos usar esta variable

144
00:07:11,680 --> 00:07:13,820
‫en nuestras mongoos. conectar().

145
00:07:13,820 --> 00:07:15,900
‫Entonces, aquí, el primer argumento es

146
00:07:15,900 --> 00:07:18,370
‫en realidad esa cadena de conexión, entonces DB.

147
00:07:18,370 --> 00:07:21,720
‫Y luego, en segundo lugar, pasamos un objeto

148
00:07:21,720 --> 00:07:25,250
‫con algunas opciones y estas son solo algunas de las

149
00:07:25,250 --> 00:07:29,150
‫opciones que debemos especificar para lidiar con algunas advertencias de obsolescencia.

150
00:07:29,150 --> 00:07:31,923
‫Entonces, no se preocupe demasiado por estos.

151
00:07:33,210 --> 00:07:37,870
‫Entonces, useNewUrlParser, configúrelo en verdadero.

152
00:07:37,870 --> 00:07:41,483
‫Luego, necesitamos usar useCreateIndex, también establecido en

153
00:07:43,780 --> 00:07:44,973
‫true.

154
00:07:46,120 --> 00:07:48,207
‫Y luego, useFindAndModify y configúrelo

155
00:07:49,860 --> 00:07:51,203
‫en falso.

156
00:07:52,430 --> 00:07:55,040
‫Entonces, nuevamente, estas son solo algunas opciones para

157
00:07:55,040 --> 00:07:57,270
‫lidiar con algunas advertencias de depreciación.

158
00:07:57,270 --> 00:07:59,270
‫Entonces, cuando esté creando sus

159
00:07:59,270 --> 00:08:01,943
‫propias aplicaciones, siga adelante y use exactamente lo mismo.

160
00:08:03,830 --> 00:08:07,050
‫Ahora, este método de conexión aquí

161
00:08:07,050 --> 00:08:12,050
‫devolverá una promesa, así que manejemos esa promesa usando then ().

162
00:08:12,580 --> 00:08:14,720
‫Y esta promesa aquí en realidad tiene acceso

163
00:08:14,720 --> 00:08:16,203
‫a un objeto de conexión.

164
00:08:17,590 --> 00:08:20,453
‫Entonces, llamémoslo simplemente con aquí para la conexión.

165
00:08:22,989 --> 00:08:24,070
‫Entonces, básicamente esta

166
00:08:24,070 --> 00:08:26,710
‫conexión será el valor resuelto de la promesa.

167
00:08:26,710 --> 00:08:29,140
‫Entonces, solo para mostrarles que en realidad

168
00:08:29,140 --> 00:08:32,063
‫estamos conectados, solo quiero registrar este objeto en la consola.

169
00:08:33,550 --> 00:08:37,690
‫Entonces, consola. log connection y, de hecho,

170
00:08:37,690 --> 00:08:40,343
‫quiero ver la propiedad de conexiones allí.

171
00:08:42,740 --> 00:08:44,490
‫Y también podemos iniciar sesión en

172
00:08:46,610 --> 00:08:50,340
‫la consola con algo como una conexión a la base de datos exitosa.

173
00:08:54,090 --> 00:08:55,283
‫Salvarlo aquí.

174
00:08:56,150 --> 00:08:58,640
‫Y luego, por supuesto, muestra estas advertencias aquí

175
00:08:58,640 --> 00:09:01,160
‫debido a nuestro ESLint, pero no se preocupe por eso.

176
00:09:01,160 --> 00:09:03,260
‫Así es como lo configuramos.

177
00:09:04,290 --> 00:09:05,200
‫Entonces,

178
00:09:05,200 --> 00:09:07,573
‫sigamos adelante y ejecutemos esta aplicación.

179
00:09:08,510 --> 00:09:12,880
‫Ahora, déjame recordar qué tipo de guiones tenemos.

180
00:09:12,880 --> 00:09:15,380
‫Entonces, tenemos start: dev y start: prod.

181
00:09:15,380 --> 00:09:18,150
‫Ahora, dado que nuestro script aquí no solo

182
00:09:18,150 --> 00:09:19,520
‫se llama start,

183
00:09:19,520 --> 00:09:23,400
‫que es una especie de estándar, siempre tenemos que escribir npm run

184
00:09:23,400 --> 00:09:27,450
‫start: dev en lugar de escribir solo npm start, sin la ejecución.

185
00:09:27,450 --> 00:09:28,430
‫Entonces, déjeme seguir adelante

186
00:09:28,430 --> 00:09:30,127
‫y cambiar el nombre aquí para comenzar.

187
00:09:30,127 --> 00:09:32,533
‫Y luego, comenzamos la producción.

188
00:09:34,452 --> 00:09:35,513
‫Entonces, npm start.

189
00:09:37,420 --> 00:09:38,653
‫La aplicación se está ejecutando ahora.

190
00:09:40,090 --> 00:09:43,820
‫Y, de hecho, nuestra conexión a la base de datos fue exitosa.

191
00:09:43,820 --> 00:09:45,150
‫Que bien.

192
00:09:45,150 --> 00:09:47,900
‫Y ahora, aquí tenemos nuestro objeto de conexiones

193
00:09:47,900 --> 00:09:50,450
‫y, como puede ver, hay muchas cosas

194
00:09:50,450 --> 00:09:53,623
‫aquí y podemos ver nuestro nombre de usuario aquí, host,

195
00:09:54,900 --> 00:09:56,470
‫la contraseña, por supuesto.

196
00:09:56,470 --> 00:09:59,840
‫Y estas cosas aquí realmente no importan, por supuesto.

197
00:09:59,840 --> 00:10:02,000
‫Solo quería registrarlo aquí

198
00:10:02,000 --> 00:10:05,653
‫para que veamos que nuestra conexión fue realmente exitosa.

199
00:10:06,660 --> 00:10:08,903
‫Y entonces, deshagámonos de eso.

200
00:10:09,900 --> 00:10:12,643
‫Y, de hecho, también podemos deshacernos de todo esto aquí.

201
00:10:15,140 --> 00:10:17,493
‫Entonces, esto es solo una línea aquí.

202
00:10:19,420 --> 00:10:21,743
‫Oh sí, solo falta este paréntesis.

203
00:10:24,440 --> 00:10:27,470
‫Ahora, aquí, me dice que declaramos esta variable, pero

204
00:10:27,470 --> 00:10:30,353
‫nunca la usamos, así que, de hecho, eliminémosla.

205
00:10:31,990 --> 00:10:33,800
‫Ahora, como paso final,

206
00:10:33,800 --> 00:10:36,070
‫permítame mostrarle cómo también podríamos conectarnos a

207
00:10:36,070 --> 00:10:38,230
‫la base de datos local, nuevamente,

208
00:10:38,230 --> 00:10:40,530
‫en caso de que esté usando esa.

209
00:10:40,530 --> 00:10:44,170
‫Entonces, dupliquemos esta línea, coméntela.

210
00:10:44,170 --> 00:10:47,060
‫Entonces, esta es la versión de la

211
00:10:47,060 --> 00:10:51,523
‫base de datos alojada y luego aquí solo tendríamos que poner la local.

212
00:10:52,520 --> 00:10:56,080
‫Entonces, eso es DATABASE_LOCAL.

213
00:10:56,080 --> 00:10:57,890
‫Vamos a salvarlo.

214
00:10:57,890 --> 00:11:00,933
‫Y también estamos conectados con éxito a ese.

215
00:11:02,020 --> 00:11:04,470
‫Entonces, así es como lo haría en ese caso.

216
00:11:06,040 --> 00:11:07,530
‫Pero, como dije, en este

217
00:11:07,530 --> 00:11:09,470
‫curso, de hecho usaremos el alojado, así

218
00:11:09,470 --> 00:11:11,470
‫que ese es el que me quedo aquí.

219
00:11:12,600 --> 00:11:14,100
‫De hecho, estoy eliminando este.

220
00:11:14,100 --> 00:11:15,350
‫Ya no lo necesitamos.

221
00:11:16,470 --> 00:11:17,780
‫Ahora, por supuesto, también

222
00:11:17,780 --> 00:11:20,470
‫podría haber problemas para conectarse a la base de datos.

223
00:11:20,470 --> 00:11:22,810
‫Por ejemplo, el host podría estar

224
00:11:22,810 --> 00:11:25,700
‫inactivo o podríamos tener algún error en nuestra cadena

225
00:11:25,700 --> 00:11:28,660
‫de conexión y, en ese caso, deberíamos detectar ese error.

226
00:11:28,660 --> 00:11:30,120
‫Pero dejaremos el manejo de

227
00:11:30,120 --> 00:11:31,710
‫errores para un poco más adelante en

228
00:11:31,710 --> 00:11:34,530
‫el curso y, por ahora, no tengo ningún método de captura aquí.

229
00:11:34,530 --> 00:11:35,850
‫Solo el método entonces

230
00:11:35,850 --> 00:11:37,743
‫aquí, asumiendo que todo funciona bien.

231
00:11:39,242 --> 00:11:41,280
‫Y, finalmente, quiero continuar y eliminar

232
00:11:41,280 --> 00:11:42,780
‫la colección que

233
00:11:42,780 --> 00:11:45,110
‫ya creamos en nuestra base de

234
00:11:45,110 --> 00:11:48,360
‫datos solo para que nuestro controlador Mongoose no interfiera

235
00:11:48,360 --> 00:11:52,470
‫con eso de ninguna manera para que no haya ningún problema allí.

236
00:11:52,470 --> 00:11:55,430
‫Entonces, volvamos a Atlas aquí.

237
00:11:55,430 --> 00:11:56,930
‫Accede a nuestras COLECCIONES.

238
00:11:56,930 --> 00:12:00,633
‫Y luego, simplemente elimine la colección de aquí.

239
00:12:01,860 --> 00:12:05,500
‫Y ahora, necesitamos poner aquí el nombre de la

240
00:12:05,500 --> 00:12:08,930
‫colección para no cometer ningún error aquí.

241
00:12:08,930 --> 00:12:12,750
‫Entonces, suelte y, está bien.

242
00:12:12,750 --> 00:12:14,620
‫Entonces, ahora tenemos una base de

243
00:12:14,620 --> 00:12:17,990
‫datos vacía aquí, lista para comenzar a llenar con nuestros datos a

244
00:12:17,990 --> 00:12:19,553
‫partir de los próximos videos.

