﻿1
00:00:01,300 --> 00:00:02,640
‫Instructor: Entonces, ya

2
00:00:02,640 --> 00:00:05,930
‫aprendió a crear nuevos documentos en la base de datos.

3
00:00:05,930 --> 00:00:07,610
‫Pero en esta conferencia les

4
00:00:07,610 --> 00:00:10,940
‫mostraré una manera más fácil e incluso mejor de hacerlo,

5
00:00:10,940 --> 00:00:13,933
‫ya que implementamos nuestro controlador de creación de recorridos.

6
00:00:15,620 --> 00:00:17,620
‫Entonces, en este punto, nuestra

7
00:00:17,620 --> 00:00:19,690
‫API básicamente ya no hace nada.

8
00:00:19,690 --> 00:00:21,140
‫Ya no funciona

9
00:00:21,140 --> 00:00:23,850
‫porque básicamente eliminamos toda la funcionalidad que

10
00:00:23,850 --> 00:00:25,760
‫teníamos en el último video.

11
00:00:25,760 --> 00:00:28,740
‫Y lo hicimos, para que en las

12
00:00:28,740 --> 00:00:32,230
‫próximas conferencias podamos reconstruirlo usando una base de datos real.

13
00:00:32,230 --> 00:00:36,810
‫Bien, básicamente, finalmente construimos nuestra API real.

14
00:00:36,810 --> 00:00:38,500
‫Y comenzaremos implementando la

15
00:00:38,500 --> 00:00:39,957
‫función createTour.

16
00:00:39,957 --> 00:00:42,260
‫Pero recuerde la función de controlador que

17
00:00:42,260 --> 00:00:45,300
‫se llama tan pronto como hay una solicitud de

18
00:00:45,300 --> 00:00:47,420
‫publicación en la ruta de recorridos.

19
00:00:47,420 --> 00:00:50,460
‫Así que eso es lo que tenemos aquí en tourRoutes.

20
00:00:51,300 --> 00:00:53,320
‫Pongamos eso aquí.

21
00:00:53,320 --> 00:00:56,930
‫Entonces, lo que acabo de decir es esto.

22
00:00:56,930 --> 00:00:59,940
‫Así que tenemos este checkBody aquí.

23
00:00:59,940 --> 00:01:01,450
‫Lo que en realidad

24
00:01:01,450 --> 00:01:03,663
‫es algo que también podremos eliminar.

25
00:01:04,920 --> 00:01:06,313
‫Entonces, ¿dónde está eso, en realidad?

26
00:01:07,583 --> 00:01:09,120
‫checkBody está bien,

27
00:01:09,120 --> 00:01:12,750
‫así que esta es otra de estas funciones que

28
00:01:12,750 --> 00:01:14,290
‫realmente ya no necesitamos.

29
00:01:14,290 --> 00:01:17,180
‫Porque esto fue básicamente para validar el cuerpo.

30
00:01:17,180 --> 00:01:22,060
‫Entonces, para ver si tenía el nombre o el precio de la propiedad en ellos.

31
00:01:22,060 --> 00:01:22,900
‫¿Derecha?

32
00:01:22,900 --> 00:01:24,690
‫Pero ahora nuestro modelo

33
00:01:24,690 --> 00:01:26,650
‫de mangosta se encargará de eso.

34
00:01:26,650 --> 00:01:28,830
‫Y nuevamente, esto aquí

35
00:01:28,830 --> 00:01:31,900
‫fue bueno para mostrarnos cómo funciona el middleware,

36
00:01:31,900 --> 00:01:34,143
‫pero ahora podemos deshacernos de él.

37
00:01:35,490 --> 00:01:39,410
‫De acuerdo, también lo borraré de aquí.

38
00:01:39,410 --> 00:01:40,393
‫Dale un nuevo guardado.

39
00:01:41,474 --> 00:01:43,400
‫Y ahora ha vuelto a funcionar.

40
00:01:43,400 --> 00:01:45,660
‫De todos modos, la función que

41
00:01:45,660 --> 00:01:48,000
‫estamos creando ahora es esta función createTour.

42
00:01:48,000 --> 00:01:50,050
‫Donde solo se llamará a un

43
00:01:50,050 --> 00:01:54,690
‫dato tan pronto como alguien llegue a la ruta del tour con una solicitud de publicación.

44
00:01:54,690 --> 00:01:57,030
‫Bien, solo para recapitular eso porque

45
00:01:57,030 --> 00:01:59,150
‫sé que puede ser un

46
00:01:59,150 --> 00:02:02,190
‫poco confuso con estos diferentes archivos y diferentes

47
00:02:02,190 --> 00:02:03,980
‫carpetas y diferentes funciones.

48
00:02:03,980 --> 00:02:05,430
‫Pero también es muy

49
00:02:05,430 --> 00:02:07,610
‫importante que comencemos a organizar nuestro código

50
00:02:07,610 --> 00:02:08,860
‫desde el principio.

51
00:02:09,940 --> 00:02:10,900
‫¿Okey?

52
00:02:10,900 --> 00:02:14,710
‫De todos modos, estamos aquí en la función createTour.

53
00:02:14,710 --> 00:02:17,200
‫Y ahora vamos a crear una nueva gira.

54
00:02:17,200 --> 00:02:19,270
‫Y lo haremos basándonos en los

55
00:02:19,270 --> 00:02:21,290
‫datos que provienen del cuerpo.

56
00:02:21,290 --> 00:02:22,640
‫¿Recuérdalo?

57
00:02:22,640 --> 00:02:24,980
‫Ahora recuerde cómo solíamos crear documentos hace

58
00:02:24,980 --> 00:02:26,363
‫un par de conferencias.

59
00:02:27,470 --> 00:02:29,253
‫Así que lo hicimos así.

60
00:02:30,690 --> 00:02:32,487
‫Por ejemplo, digamos newTour y

61
00:02:33,327 --> 00:02:35,077
‫luego igual a

62
00:02:37,910 --> 00:02:40,014
‫newTour y luego los datos allí.

63
00:02:40,014 --> 00:02:44,181
‫Así que lo hicimos así y luego es una nueva gira.

64
00:02:46,087 --> 00:02:48,504
‫Y luego escribimos newTour. guardar y

65
00:02:50,290 --> 00:02:51,920
‫eso funciona un poco bien.

66
00:02:51,920 --> 00:02:54,780
‫Pero podemos hacerlo de una manera aún más sencilla.

67
00:02:54,780 --> 00:02:58,010
‫Entonces, en lugar de hacer esto,

68
00:03:02,220 --> 00:03:05,690
‫podemos hacer Tour. cree y luego pegue los datos allí.

69
00:03:05,690 --> 00:03:08,070
‫Está bien y eso hará exactamente lo mismo.

70
00:03:08,070 --> 00:03:10,900
‫La principal diferencia es que en esta versión

71
00:03:10,900 --> 00:03:14,170
‫aquí básicamente llamamos al método directamente en el recorrido,

72
00:03:14,170 --> 00:03:17,330
‫mientras que en esta primera versión llamamos al método

73
00:03:17,330 --> 00:03:18,970
‫en el nuevo documento.

74
00:03:18,970 --> 00:03:21,560
‫Está bien, y eso es completamente diferente.

75
00:03:21,560 --> 00:03:23,940
‫Así que nuevamente tuvimos el recorrido que creamos a

76
00:03:23,940 --> 00:03:24,920
‫partir del modelo.

77
00:03:24,920 --> 00:03:27,920
‫Y luego en esa gira usamos el método de guardar.

78
00:03:27,920 --> 00:03:30,720
‫Porque el documento tiene acceso a este método

79
00:03:30,720 --> 00:03:33,030
‫y también a muchos otros métodos.

80
00:03:33,030 --> 00:03:35,040
‫Pero aquí, en la segunda situación,

81
00:03:35,040 --> 00:03:39,373
‫llamamos a este método de creación directamente en el modelo en sí, ¿de acuerdo?

82
00:03:40,560 --> 00:03:45,463
‫Ahora recuerde cómo este método de guardar aquí devolvió una promesa.

83
00:03:46,480 --> 00:03:49,670
‫Y así, esta creación aquí también devuelve una promesa.

84
00:03:49,670 --> 00:03:52,630
‫Y entonces, para tener acceso al documento de archivo

85
00:03:52,630 --> 00:03:54,690
‫tal como fue creado en

86
00:03:54,690 --> 00:03:58,880
‫la base de datos, deberíamos haber usado. ¿entonces de acuerdo?

87
00:03:58,880 --> 00:04:01,810
‫Pero en lugar de usar promesas como esta,

88
00:04:01,810 --> 00:04:03,920
‫comenzaré a usar async await.

89
00:04:03,920 --> 00:04:04,860
‫Bien.

90
00:04:04,860 --> 00:04:07,960
‫Entonces, esta función aquí debería ser una función asíncrona.

91
00:04:07,960 --> 00:04:09,900
‫Entonces, todo lo que

92
00:04:09,900 --> 00:04:12,250
‫tenemos que hacer es escribir async aquí.

93
00:04:12,250 --> 00:04:15,760
‫Así que tenemos async y ahora podemos esperar el resultado de

94
00:04:15,760 --> 00:04:16,903
‫esta promesa aquí.

95
00:04:18,255 --> 00:04:21,010
‫Así que espero que esté familiarizado con esto.

96
00:04:21,010 --> 00:04:23,030
‫Y de hecho tengo una sección en

97
00:04:23,030 --> 00:04:25,890
‫este curso que trata exactamente de este tipo de cosas.

98
00:04:25,890 --> 00:04:27,490
‫Entonces, si no vio

99
00:04:27,490 --> 00:04:30,920
‫esa sección pero aún no está 100% familiarizado con async

100
00:04:30,920 --> 00:04:33,280
‫await, continúe y mire esa sección para

101
00:04:33,280 --> 00:04:36,040
‫que realmente comprenda lo que está sucediendo aquí.

102
00:04:36,040 --> 00:04:39,270
‫De acuerdo, en lugar de usar esto, usaré async

103
00:04:39,270 --> 00:04:40,960
‫await y luego guardaré el

104
00:04:40,960 --> 00:04:43,790
‫valor de resultado de esta promesa en la

105
00:04:43,790 --> 00:04:45,413
‫nueva variable tour.

106
00:04:49,220 --> 00:04:52,020
‫Bien, ahora la última pieza del rompecabezas

107
00:04:52,020 --> 00:04:56,410
‫aquí es, por supuesto, pasar algunos datos reales a este método de creación.

108
00:04:56,410 --> 00:04:58,410
‫Entonces, en lugar de este

109
00:04:58,410 --> 00:05:01,310
‫objeto vacío, pasaremos el cuerpo de la solicitud,

110
00:05:01,310 --> 00:05:05,020
‫por lo que req. body y esos son los

111
00:05:05,020 --> 00:05:08,010
‫datos que vienen con la solicitud de publicación, ¿verdad?

112
00:05:08,010 --> 00:05:09,290
‫Ahora solo una

113
00:05:09,290 --> 00:05:12,600
‫vez más, solo para asegurarse de que todo le quede claro.

114
00:05:12,600 --> 00:05:15,920
‫De acuerdo, podemos usar el modelo de recorrido directamente y

115
00:05:15,920 --> 00:05:18,340
‫llamar al método de creación en él.

116
00:05:18,340 --> 00:05:20,630
‫Luego, a esa función pasamos los datos que

117
00:05:20,630 --> 00:05:23,600
‫queremos almacenar en la base de datos como un nuevo recorrido.

118
00:05:23,600 --> 00:05:26,810
‫Y esos datos provienen del cuerpo de la publicación, ¿verdad?

119
00:05:26,810 --> 00:05:30,730
‫Y eso se almacena dentro del cuerpo del punto de la solicitud.

120
00:05:30,730 --> 00:05:32,460
‫Entonces esta variable aquí.

121
00:05:32,460 --> 00:05:35,503
‫Ahora, este método aquí devolverá una promesa.

122
00:05:36,473 --> 00:05:38,850
‫Y esperamos esa promesa usando async

123
00:05:38,850 --> 00:05:42,000
‫await y luego almacenamos ese resultado en la variable

124
00:05:42,000 --> 00:05:44,050
‫newTour, que será el documento

125
00:05:44,050 --> 00:05:48,083
‫recién creado que ya tiene la ID y todo, ¿de acuerdo?

126
00:05:49,700 --> 00:05:51,130
‫Así que guardaré

127
00:05:51,130 --> 00:05:53,160
‫este código aquí solo como referencia.

128
00:05:53,160 --> 00:05:57,210
‫Y por ahora, recuperemos este dato.

129
00:05:57,210 --> 00:05:58,363
‫En realidad, es un fragmento de código.

130
00:05:59,250 --> 00:06:00,720
‫Dale una oportunidad.

131
00:06:00,720 --> 00:06:03,950
‫Y ahora obtenemos este error de pelusa ES.

132
00:06:03,950 --> 00:06:05,360
‫Así que echemos un vistazo

133
00:06:05,360 --> 00:06:07,300
‫a eso, solo coloque nuestro mouse aquí.

134
00:06:07,300 --> 00:06:10,500
‫Y nos dice que las funciones asíncronas no son compatibles

135
00:06:10,500 --> 00:06:13,230
‫hasta este nodo 7. 6 y, por lo tanto,

136
00:06:13,230 --> 00:06:16,140
‫este error de pelusa de ES proviene de ese complemento de

137
00:06:16,140 --> 00:06:17,320
‫nodo que realmente instalamos.

138
00:06:17,320 --> 00:06:18,450
‫Entonces puedes ver eso aquí.

139
00:06:18,450 --> 00:06:21,410
‫Muy bien, entonces lo que vamos a hacer para solucionar esto es

140
00:06:21,410 --> 00:06:23,920
‫simplemente ir al paquete. json y

141
00:06:23,920 --> 00:06:25,600
‫aquí encontrará la versión de

142
00:06:25,600 --> 00:06:27,180
‫nodo que estamos usando.

143
00:06:27,180 --> 00:06:28,383
‫Entonces eso es muy simple.

144
00:06:30,880 --> 00:06:33,790
‫Solo necesitamos especificar la propiedad de los

145
00:06:33,790 --> 00:06:36,673
‫motores aquí en nuestro documento json.

146
00:06:39,070 --> 00:06:43,830
‫Y establezca el nodo en mayor o

147
00:06:44,850 --> 00:06:47,230
‫igual que 10.

148
00:06:47,230 --> 00:06:48,850
‫Bien, y eso es porque en

149
00:06:48,850 --> 00:06:51,053
‫este curso estamos usando al menos el nodo diez.

150
00:06:52,636 --> 00:06:56,490
‫Entonces 7. 6 sería suficiente para hacer desaparecer ese

151
00:06:56,490 --> 00:06:58,610
‫error pero, por supuesto, especificamos la versión real

152
00:06:58,610 --> 00:06:59,890
‫que estamos usando.

153
00:06:59,890 --> 00:07:01,690
‫Así que le damos una oportunidad a este.

154
00:07:01,690 --> 00:07:03,010
‫Cierra eso.

155
00:07:03,010 --> 00:07:06,500
‫Y ahora nuestro error aquí ha desaparecido.

156
00:07:06,500 --> 00:07:09,560
‫Ahora solo un paso más antes de que podamos probar

157
00:07:09,560 --> 00:07:11,330
‫esto en nuestra aplicación Postman.

158
00:07:11,330 --> 00:07:14,210
‫Y eso es que realmente necesitamos manejar los errores.

159
00:07:14,210 --> 00:07:17,860
‫De acuerdo, así que tenga en cuenta que

160
00:07:17,860 --> 00:07:22,650
‫con async await necesitamos probar los errores usando la sintaxis try catch.

161
00:07:22,650 --> 00:07:26,003
‫Entonces escribimos un bloque de prueba.

162
00:07:27,160 --> 00:07:28,760
‫Luego, envuelva todo nuestro código allí.

163
00:07:32,065 --> 00:07:33,615
‫Y luego, finalmente, un bloque de captura.

164
00:07:34,920 --> 00:07:39,190
‫Que como ya sabemos tiene acceso al objeto de error.

165
00:07:39,190 --> 00:07:41,410
‫¿Y ahora qué ponemos realmente aquí?

166
00:07:41,410 --> 00:07:42,940
‫Bueno, debemos pensar

167
00:07:42,940 --> 00:07:45,410
‫cuándo puede ocurrir exactamente un error.

168
00:07:45,410 --> 00:07:47,790
‫Así que recuerde como hace dos

169
00:07:47,790 --> 00:07:50,410
‫conferencias cuando estábamos creando nuestros primeros documentos.

170
00:07:50,410 --> 00:07:51,820
‫Recibimos un error en

171
00:07:51,820 --> 00:07:53,870
‫ese entonces cuando intentamos crear un

172
00:07:53,870 --> 00:07:56,600
‫documento sin uno de los campos obligatorios, ¿verdad?

173
00:07:56,600 --> 00:07:58,700
‫Y eso fue un error de validación.

174
00:07:58,700 --> 00:08:02,370
‫Y es uno de los errores que quedarían atrapados aquí.

175
00:08:02,370 --> 00:08:05,290
‫De acuerdo, porque si intentáramos crear un documento,

176
00:08:05,290 --> 00:08:07,640
‫digamos sin uno de los campos

177
00:08:07,640 --> 00:08:09,900
‫obligatorios, entonces esta promesa que

178
00:08:09,900 --> 00:08:12,430
‫se crea aquí sería rechazada, ¿de acuerdo?

179
00:08:12,430 --> 00:08:15,000
‫Entonces, si tenemos una promesa rechazada

180
00:08:15,000 --> 00:08:17,740
‫aquí, entrará en el bloque de captura.

181
00:08:17,740 --> 00:08:20,870
‫Y por lo tanto, básicamente en este bloque

182
00:08:20,870 --> 00:08:23,050
‫de captura aquí queremos enviar

183
00:08:23,050 --> 00:08:25,580
‫una respuesta diciendo que hubo un error.

184
00:08:25,580 --> 00:08:30,580
‫Muy bien res. estado aquí de nuevo y

185
00:08:30,670 --> 00:08:33,483
‫400 que representa una mala solicitud. json y ahora algo muy similar a este,

186
00:08:35,967 --> 00:08:36,980
‫pero su

187
00:08:37,950 --> 00:08:40,290
‫estado y eso es fallar y

188
00:08:40,290 --> 00:08:43,310
‫luego, en lugar de datos aquí, enviamos un

189
00:08:44,270 --> 00:08:48,050
‫mensaje y, por ahora, establezcamos el mensaje en el error.

190
00:08:48,970 --> 00:08:51,520
‫Bien.

191
00:08:52,560 --> 00:08:53,393
‫Y

192
00:08:54,800 --> 00:08:59,260
‫ahora finalmente regresemos a nuestra aplicación Postman y pruébelo.

193
00:08:59,260 --> 00:09:01,643
‫Bien, cree este y ahora

194
00:09:01,643 --> 00:09:03,990
‫creemos un nuevo recorrido.

195
00:09:03,990 --> 00:09:06,170
‫Así que ahora mismo aquí

196
00:09:06,170 --> 00:09:07,790
‫tenemos el nombre,

197
00:09:07,790 --> 00:09:11,370
‫la duración, la dificultad y el precio, así que

198
00:09:11,370 --> 00:09:13,860
‫agreguemos también la calificación y eso

199
00:09:15,400 --> 00:09:18,040
‫debe estar entre comillas dobles 4. 7.

200
00:09:21,050 --> 00:09:21,883
‫Muy bien, y ahora llega el momento.

201
00:09:22,900 --> 00:09:25,570
‫Envía y de hecho aquí vamos.

202
00:09:25,570 --> 00:09:29,330
‫Así que esta es la gira

203
00:09:29,330 --> 00:09:32,170
‫que acabamos de crear.

204
00:09:32,170 --> 00:09:33,430
‫Tenemos nuestra calificación.

205
00:09:33,430 --> 00:09:34,520
‫Tenemos nuestro nombre y tenemos nuestro precio.

206
00:09:34,520 --> 00:09:36,950
‫Y, por supuesto, el ID creado automáticamente.

207
00:09:36,950 --> 00:09:39,780
‫Ahora puede notar que no tenemos ninguna dificultad

208
00:09:39,780 --> 00:09:40,890
‫ni precio.

209
00:09:40,890 --> 00:09:44,360
‫Bueno, ¿por qué crees que es así?

210
00:09:44,360 --> 00:09:46,870
‫Bueno, eso se debe a que estos dos campos en realidad

211
00:09:46,870 --> 00:09:48,920
‫no están en nuestro esquema y, por lo

212
00:09:48,920 --> 00:09:51,030
‫tanto, no se colocan en la base de datos.

213
00:09:51,030 --> 00:09:54,240
‫Entonces, todo lo demás que no esté en

214
00:09:54,240 --> 00:09:56,730
‫nuestro esquema simplemente se ignora.

215
00:09:56,730 --> 00:09:57,840
‫Entonces ese es el poder de nuestro esquema, ¿de acuerdo?

216
00:09:57,840 --> 00:10:01,800
‫Genial, ahora intentemos enviar esto nuevamente y

217
00:10:01,800 --> 00:10:05,210
‫eso debería darnos un error, ¿verdad?

218
00:10:05,210 --> 00:10:08,113
‫Y de hecho ahí vamos.

219
00:10:08,950 --> 00:10:10,650
‫Tenemos nuestras 400 solicitudes incorrectas.

220
00:10:10,650 --> 00:10:13,340
‫Y tenemos este mensaje que es el

221
00:10:13,340 --> 00:10:15,200
‫error completo que obtuvimos.

222
00:10:15,200 --> 00:10:17,810
‫Y aquí vemos que el mensaje de error es clave duplicada.

223
00:10:17,810 --> 00:10:21,330
‫Y eso es porque ya tenemos el Test Tour 2.

224
00:10:21,330 --> 00:10:24,510
‫Y entonces no pudo crear otro.

225
00:10:24,510 --> 00:10:26,563
‫Así que creemos otro aquí como Jonas Tour.

226
00:10:29,330 --> 00:10:33,960
‫Realmente no importa, ¿de acuerdo?

227
00:10:33,960 --> 00:10:35,933
‫Solo quiero crearlo, primero

228
00:10:36,850 --> 00:10:39,083
‫sin nada de esto solo

229
00:10:39,940 --> 00:10:42,490
‫para ver si obtenemos otro error.

230
00:10:42,490 --> 00:10:45,030
‫Y, de hecho, obtenemos algunos errores más aquí.

231
00:10:45,030 --> 00:10:48,070
‫Esta vez diciendo que la validación del tour

232
00:10:48,070 --> 00:10:50,300
‫falló porque un tour debe

233
00:10:50,300 --> 00:10:51,870
‫tener un precio.

234
00:10:51,870 --> 00:10:54,053
‫Bien, entonces ves que ahora mismo tenemos

235
00:10:54,980 --> 00:10:57,170
‫este tipo de estructura de error extraña aquí.

236
00:10:57,170 --> 00:11:00,090
‫Entonces Mongo DB devuelve este enorme objeto de error completo.

237
00:11:00,090 --> 00:11:04,650
‫Y más adelante nos encargaremos de eso.

238
00:11:04,650 --> 00:11:07,100
‫Así que tendremos una sección completa sobre el manejo de errores solamente.

239
00:11:07,100 --> 00:11:10,720
‫Y para entonces crearemos algunos errores más significativos.

240
00:11:10,720 --> 00:11:14,420
‫Bien, por ahora reemplacemos este objeto de

241
00:11:14,420 --> 00:11:18,080
‫error con una cadena normal aquí.

242
00:11:18,080 --> 00:11:20,490
‫Digamos que se enviaron datos no válidos.

243
00:11:20,490 --> 00:11:25,440
‫De acuerdo, no hagas algo como esto en una aplicación de producción real,

244
00:11:25,440 --> 00:11:27,950
‫pero nuevamente tendremos un poco de manejo

245
00:11:27,950 --> 00:11:30,350
‫de errores reales un poco

246
00:11:30,350 --> 00:11:32,930
‫más tarde que se encargará de eso.

247
00:11:32,930 --> 00:11:35,430
‫Bien, mostrando errores significativos al cliente.

248
00:11:35,430 --> 00:11:39,360
‫Así que regresemos aquí y envíelo

249
00:11:39,360 --> 00:11:40,750
‫de nuevo.

250
00:11:41,610 --> 00:11:43,040
‫Y ahora tenemos esta cadena normal aquí.

251
00:11:43,040 --> 00:11:45,950
‫Así que creemos el precio aquí.

252
00:11:45,950 --> 00:11:50,510
‫Pongámoslo en 567 y

253
00:11:50,510 --> 00:11:53,520
‫luego envíelo.

254
00:11:54,490 --> 00:11:55,700
‫Y ahora verá que nuestra calificación

255
00:11:55,700 --> 00:11:56,860
‫predeterminada aquí todavía funciona.

256
00:11:56,860 --> 00:11:59,813
‫Ahora averigüemos todo esto también con la brújula.

257
00:12:01,800 --> 00:12:05,810
‫Y de hecho obtenemos nuestros cuatro recorridos en la base de datos.

258
00:12:05,810 --> 00:12:09,860
‫Así que todas estas pruebas raras que hemos estado

259
00:12:09,860 --> 00:12:12,210
‫haciendo hasta este momento.

260
00:12:12,210 --> 00:12:14,960
‫Así que sigamos adelante y eliminemos estos dos últimos.

261
00:12:14,960 --> 00:12:19,140
‫Eso fue realmente solo para probar.

262
00:12:19,140 --> 00:12:21,123
‫Bien.

263
00:12:24,500 --> 00:12:26,130
‫Supongo que algo salió mal aquí.

264
00:12:26,130 --> 00:12:28,773
‫Bien, ahora volvemos a estos dos.

265
00:12:30,130 --> 00:12:32,782
‫Vamos a crear ahora el tercero que teníamos

266
00:12:32,782 --> 00:12:34,610
‫antes en la última sección.

267
00:12:34,610 --> 00:12:36,760
‫Que es el Snow Adventurer.

268
00:12:36,760 --> 00:12:38,763
‫Así que el Snow

269
00:12:42,490 --> 00:12:43,630
‫Adventurer.

270
00:12:45,800 --> 00:12:47,080
‫El precio fue ...

271
00:12:47,080 --> 00:12:48,280
‫Ya no estoy

272
00:12:48,280 --> 00:12:49,790
‫seguro como 697 tal vez.

273
00:12:49,790 --> 00:12:51,973
‫Y la calificación

274
00:12:54,410 --> 00:12:57,870
‫es como seis o en realidad 4. 8.

275
00:12:57,870 --> 00:12:59,963
‫Envió a ese tipo.

276
00:13:01,360 --> 00:13:02,800
‫Y así, de hecho, aquí vamos.

277
00:13:02,800 --> 00:13:04,600
‫Excelente.

278
00:13:04,600 --> 00:13:05,810
‫Solo para recapitular rápidamente nuestra función createTour.

279
00:13:05,810 --> 00:13:09,050
‫Así que tenemos un intento de captura aquí porque en realidad estamos usando

280
00:13:09,050 --> 00:13:10,740
‫una función de espera asíncrona aquí.

281
00:13:10,740 --> 00:13:13,833
‫Bien, usamos async await porque

282
00:13:14,859 --> 00:13:16,100
‫esta gira. create devuelve una

283
00:13:16,100 --> 00:13:18,910
‫promesa que estamos esperando

284
00:13:18,910 --> 00:13:21,500
‫para que luego podamos almacenar el documento de

285
00:13:21,500 --> 00:13:23,530
‫viaje recién creado dentro de esta variable

286
00:13:23,530 --> 00:13:25,340
‫y luego enviarlo junto con

287
00:13:25,340 --> 00:13:27,277
‫la respuesta al cliente aquí abajo.

288
00:13:27,277 --> 00:13:30,280
‫Está bien, pero en caso de que haya

289
00:13:30,280 --> 00:13:32,600
‫un error, como un error de

290
00:13:32,600 --> 00:13:34,850
‫validación, por ejemplo, ese error

291
00:13:34,850 --> 00:13:37,120
‫se detectará y enviaremos algo más

292
00:13:37,120 --> 00:13:39,700
‫al cliente con este mensaje de error.

293
00:13:39,700 --> 00:13:41,900
‫Así es como creamos documentos usando mongoose.

294
00:13:41,900 --> 00:13:44,890
‫A continuación, hablaremos sobre la lectura de documentos.

