﻿1
00:00:00,980 --> 00:00:02,760
‫Instructor: Muy bien, en

2
00:00:02,760 --> 00:00:04,720
‫esta conferencia, vamos a hablar

3
00:00:04,720 --> 00:00:06,910
‫sobre algo llamado rutas anidadas, qué

4
00:00:06,910 --> 00:00:08,690
‫son, por qué las

5
00:00:08,690 --> 00:00:11,163
‫necesitamos y cómo podemos implementarlas en Express.

6
00:00:12,944 --> 00:00:15,470
‫Pensemos por un segundo cómo, en

7
00:00:15,470 --> 00:00:18,566
‫la práctica, realmente queremos crear una nueva revisión.

8
00:00:18,566 --> 00:00:21,520
‫Hasta este punto, al crear nuevas reseñas, siempre pasábamos

9
00:00:21,520 --> 00:00:24,020
‫manualmente el ID del tour y el

10
00:00:24,020 --> 00:00:26,920
‫ID de usuario al cuerpo de la solicitud, y

11
00:00:26,920 --> 00:00:30,300
‫luego creábamos la reseña a partir de ahí, a la derecha.

12
00:00:30,300 --> 00:00:33,180
‫Eso está bien durante el desarrollo, pero, por supuesto, no

13
00:00:33,180 --> 00:00:34,980
‫es así como se creará una revisión

14
00:00:34,980 --> 00:00:36,433
‫en el mundo real.

15
00:00:37,680 --> 00:00:40,610
‫Por lo tanto, en el mundo real, la

16
00:00:40,610 --> 00:00:44,010
‫identificación de usuario debería provenir idealmente del usuario que ha iniciado

17
00:00:44,010 --> 00:00:47,740
‫sesión actualmente y una identificación del recorrido debe provenir del recorrido actual.

18
00:00:47,740 --> 00:00:49,700
‫Idealmente, eso debería estar codificado justo

19
00:00:49,700 --> 00:00:51,877
‫en la ruta, es decir, en la URL.

20
00:00:53,020 --> 00:00:56,300
‫Al enviar una solicitud de publicación para

21
00:00:56,300 --> 00:01:00,140
‫una nueva revisión, queremos enviarla a una URL como esta.

22
00:01:00,140 --> 00:01:03,143
‫Escribamos eso aquí solo como un comentario.

23
00:01:05,826 --> 00:01:08,869
‫Idealmente, querremos hacer una solicitud

24
00:01:08,869 --> 00:01:13,869
‫de publicación, recorrido y la identificación del recorrido, realmente

25
00:01:15,490 --> 00:01:19,343
‫no importa aquí, y luego las revisiones.

26
00:01:20,650 --> 00:01:23,100
‫Bien, así que ahora, así, tenemos el

27
00:01:23,100 --> 00:01:25,580
‫ID del tour directamente en la URL

28
00:01:25,580 --> 00:01:28,030
‫y el ID de usuario también vendrá

29
00:01:28,030 --> 00:01:29,913
‫del usuario actualmente conectado.

30
00:01:31,130 --> 00:01:35,330
‫Lo que vemos aquí ahora es una ruta denominada anidada.

31
00:01:35,330 --> 00:01:37,330
‫Tienen mucho sentido cuando existe

32
00:01:37,330 --> 00:01:40,570
‫una relación clara entre padres e hijos entre los recursos.

33
00:01:40,570 --> 00:01:43,840
‫Ese es claramente el caso aquí, ¿verdad?

34
00:01:43,840 --> 00:01:47,530
‫Reseñas es claramente un hijo de la gira.

35
00:01:47,530 --> 00:01:49,320
‫Esta ruta anidada

36
00:01:49,320 --> 00:01:51,580
‫básicamente significa acceder al recurso de

37
00:01:51,580 --> 00:01:54,810
‫reseñas en el recurso del recorrido, de acuerdo.

38
00:01:54,810 --> 00:01:57,420
‫De la misma manera, también querremos acceder

39
00:01:57,420 --> 00:02:01,193
‫a las reseñas de un recorrido determinado de la misma manera.

40
00:02:02,310 --> 00:02:05,560
‫Digamos luego una solicitud de obtención, y nuevamente

41
00:02:05,560 --> 00:02:09,650
‫para el tour slash ID de tour y reseñas de slash.

42
00:02:09,650 --> 00:02:11,390
‫Idealmente, esto nos proporcionaría

43
00:02:11,390 --> 00:02:13,583
‫todas las reseñas de esta gira.

44
00:02:14,970 --> 00:02:17,110
‫Podríamos ir aún más lejos

45
00:02:17,110 --> 00:02:19,653
‫y también especificar el ID de la revisión.

46
00:02:21,840 --> 00:02:24,490
‫Así que de nuevo, solo una cadena aleatoria aquí,

47
00:02:24,490 --> 00:02:25,703
‫pero entiendes el punto.

48
00:02:26,643 --> 00:02:28,550
‫En este caso, obtendríamos una revisión

49
00:02:28,550 --> 00:02:30,420
‫con la ID de esto

50
00:02:30,420 --> 00:02:32,603
‫aquí en el recorrido con esta ID.

51
00:02:34,140 --> 00:02:36,520
‫De esto se tratan las rutas anidadas.

52
00:02:36,520 --> 00:02:40,220
‫Esta es una forma mucho más fácil de

53
00:02:40,220 --> 00:02:44,795
‫leer y comprender cómo funciona la API para nuestros usuarios de API.

54
00:02:44,795 --> 00:02:47,130
‫Es mucho más fácil que

55
00:02:47,130 --> 00:02:50,100
‫jugar con cadenas de consulta y todo eso.

56
00:02:50,100 --> 00:02:52,580
‫Además, realmente muestra cómo

57
00:02:52,580 --> 00:02:55,850
‫existe esta relación clara entre estos

58
00:02:55,850 --> 00:02:58,610
‫recursos, nuevamente, reseñas y recorridos.

59
00:02:58,610 --> 00:03:00,410
‫Está bien, pero basta de hablar.

60
00:03:00,410 --> 00:03:02,510
‫Ahora implementemos esto comenzando con

61
00:03:02,510 --> 00:03:04,600
‫la ruta de publicación.

62
00:03:04,600 --> 00:03:08,100
‫Ahora, dado que la ruta en realidad comienza con recorridos, por

63
00:03:08,100 --> 00:03:11,150
‫supuesto se redirigirá a nuestro enrutador de recorridos.

64
00:03:11,150 --> 00:03:14,600
‫Tendremos que implementar esta funcionalidad al menos por ahora, en

65
00:03:14,600 --> 00:03:16,890
‫el enrutador de recorrido, aunque eso

66
00:03:16,890 --> 00:03:19,530
‫parece un poco contraintuitivo ya que, de

67
00:03:19,530 --> 00:03:21,793
‫hecho, estamos lidiando con revisiones.

68
00:03:23,190 --> 00:03:26,650
‫Pero nuevamente, por ahora, implementémoslo así.

69
00:03:26,650 --> 00:03:29,690
‫Llegamos a nuestro enrutador de usuario y primero, dado

70
00:03:32,040 --> 00:03:33,550
‫que en realidad vamos

71
00:03:33,550 --> 00:03:34,870
‫a usar revisiones

72
00:03:34,870 --> 00:03:37,483
‫aquí, necesitamos importar el controlador de revisión.

73
00:03:42,370 --> 00:03:46,140
‫Requiere controlador.

74
00:03:46,140 --> 00:03:49,763
‫Quizás debería haber copiado la línea de antes.

75
00:03:52,080 --> 00:03:55,693
‫Controladores y controlador de revisión.

76
00:03:57,380 --> 00:04:01,010
‫Muy bien, ahora aquí en la parte inferior, y

77
00:04:01,010 --> 00:04:02,730
‫obtengamos nuestro código para

78
00:04:02,730 --> 00:04:04,970
‫este ejemplo desde aquí solo

79
00:04:08,100 --> 00:04:09,223
‫como referencia.

80
00:04:13,518 --> 00:04:15,750
‫De modo que ahora podamos implementarlo.

81
00:04:15,750 --> 00:04:18,910
‫La ruta que vamos a implementar

82
00:04:20,960 --> 00:04:24,673
‫aquí es ID de barra y luego revisiones.

83
00:04:26,240 --> 00:04:28,600
‫Esta parte del recorrido aquí, como ya saben,

84
00:04:28,600 --> 00:04:30,457
‫es donde montamos este enrutador

85
00:04:30,457 --> 00:04:33,300
‫y, por lo tanto, no tenemos que repetirlo aquí.

86
00:04:33,300 --> 00:04:37,090
‫Pero luego, tenemos el ID de la gira y luego las reseñas de barras.

87
00:04:37,090 --> 00:04:38,590
‫Para dejar esto realmente claro,

88
00:04:38,590 --> 00:04:40,440
‫llamémoslo ID de viaje, ya que

89
00:04:42,850 --> 00:04:44,040
‫ahora estamos tratando

90
00:04:44,040 --> 00:04:45,440
‫con diferentes recursos aquí.

91
00:04:45,440 --> 00:04:48,363
‫Así que es un poco más claro llamarlo realmente como es.

92
00:04:52,885 --> 00:04:55,844
‫Ahora queremos implementar la revisión de creación.

93
00:04:55,844 --> 00:04:58,094
‫Authcontroller dot protect.

94
00:05:00,960 --> 00:05:04,403
‫También queremos restringir el acceso solo a los

95
00:05:11,472 --> 00:05:15,805
‫usuarios, y luego, por supuesto, nuestro controlador de revisión dot

96
00:05:19,740 --> 00:05:22,033
‫create review, de acuerdo.

97
00:05:22,980 --> 00:05:26,000
‫Nuevamente, es un poco extraño y contrario a la

98
00:05:26,000 --> 00:05:28,880
‫intuición llamar al controlador de revisión aquí en

99
00:05:28,880 --> 00:05:30,593
‫la ruta del usuario.

100
00:05:31,620 --> 00:05:34,273
‫Bueno, en realidad, no debería estar en la ruta del usuario.

101
00:05:35,200 --> 00:05:36,990
‫Por alguna razón, abrí las

102
00:05:36,990 --> 00:05:41,140
‫rutas del usuario y no las rutas del tour, lo siento mucho.

103
00:05:41,140 --> 00:05:44,403
‫Cortémoslo desde aquí, venimos a nuestras rutas turísticas y, de hecho,

104
00:05:45,420 --> 00:05:47,320
‫hagámoslo aquí en la parte inferior.

105
00:05:49,697 --> 00:05:52,523
‫Por supuesto, también necesitamos obtener el controlador de revisión.

106
00:05:56,490 --> 00:05:59,580
‫Así que ahora deberíamos estar listos para irnos.

107
00:05:59,580 --> 00:06:01,640
‫Eso fue un error estúpido.

108
00:06:01,640 --> 00:06:03,920
‫Pero de todos modos, lo que

109
00:06:03,920 --> 00:06:06,610
‫estaba diciendo es que no tiene mucho sentido

110
00:06:06,610 --> 00:06:09,720
‫llamar al controlador de revisión en la ruta del

111
00:06:09,720 --> 00:06:12,300
‫recorrido, pero nuevamente, por ahora, debemos hacerlo

112
00:06:12,300 --> 00:06:15,000
‫así porque la ruta comienza con el recorrido.

113
00:06:15,000 --> 00:06:17,680
‫Es este enrutador el que se activará.

114
00:06:17,680 --> 00:06:19,460
‫En el siguiente video, vamos

115
00:06:19,460 --> 00:06:21,350
‫a arreglar eso, pero por ahora,

116
00:06:21,350 --> 00:06:22,870
‫solo queremos que funcione

117
00:06:22,870 --> 00:06:25,840
‫y familiarizarnos con todo este concepto de rutas anidadas.

118
00:06:25,840 --> 00:06:29,540
‫De todos modos, ahora obtuvimos nuestro ID de recorrido justo en la ruta,

119
00:06:29,540 --> 00:06:30,880
‫pero, por supuesto, debemos

120
00:06:30,880 --> 00:06:34,250
‫informarle al controlador que ahora debe usar este ID de recorrido y

121
00:06:34,250 --> 00:06:37,113
‫también el ID del usuario que ha iniciado sesión actualmente.

122
00:06:38,100 --> 00:06:39,240
‫Ahora debemos continuar

123
00:06:39,240 --> 00:06:41,400
‫y actualizar nuestro controlador de revisión

124
00:06:43,630 --> 00:06:45,433
‫aquí mismo, en crear revisión.

125
00:06:53,817 --> 00:06:56,370
‫Lo que vamos a hacer es esto.

126
00:06:56,370 --> 00:07:01,360
‫Diremos, si no hay una solicitud de tour de punto de cuerpo de

127
00:07:02,990 --> 00:07:06,210
‫punto, entonces básicamente si no especificamos el ID

128
00:07:06,210 --> 00:07:08,180
‫del tour y el cuerpo,

129
00:07:08,180 --> 00:07:10,870
‫entonces queremos definirlo como el que viene

130
00:07:10,870 --> 00:07:12,603
‫de la URL.

131
00:07:14,080 --> 00:07:17,373
‫Req dot body dot tour es igual a request,

132
00:07:19,210 --> 00:07:21,910
‫y ahora recuerde cómo ese parámetro de

133
00:07:21,910 --> 00:07:25,850
‫URL está en request dot params y luego, por supuesto, el nombre

134
00:07:25,850 --> 00:07:29,603
‫del parámetro en sí, por lo que el ID de tour.

135
00:07:32,930 --> 00:07:34,640
‫Esta es la primera parte y

136
00:07:34,640 --> 00:07:37,060
‫la segunda, también debemos hacer lo mismo con el usuario.

137
00:07:38,450 --> 00:07:41,740
‫Si no hay una solicitud de usuario de

138
00:07:41,740 --> 00:07:46,710
‫punto, o en realidad, una solicitud de usuario de punto de cuerpo de

139
00:07:46,710 --> 00:07:50,180
‫punto, entonces la solicitud de usuario de punto de

140
00:07:51,910 --> 00:07:56,910
‫cuerpo de punto debe solicitar la ID de punto de usuario de punto.

141
00:07:58,750 --> 00:08:01,520
‫Y nuevamente, obtenemos un usuario punto

142
00:08:01,520 --> 00:08:05,193
‫de solicitud del middleware de protección, y eso es todo.

143
00:08:06,130 --> 00:08:11,130
‫Pongamos un comentario aquí, rutas anidadas.

144
00:08:13,390 --> 00:08:15,120
‫Con esto, lo hacemos para

145
00:08:15,120 --> 00:08:17,700
‫que el usuario aún pueda especificar manualmente el

146
00:08:17,700 --> 00:08:19,603
‫recorrido y la ID de usuario.

147
00:08:20,677 --> 00:08:21,860
‫Lo que estamos

148
00:08:21,860 --> 00:08:24,250
‫haciendo aquí es simplemente definirlos cuando no están allí

149
00:08:24,250 --> 00:08:27,343
‫o cuando no están especificados en el cuerpo de la solicitud.

150
00:08:28,827 --> 00:08:32,263
‫Esto debería ser suficiente para que podamos probarlo ahora.

151
00:08:33,410 --> 00:08:35,320
‫Muy bien, echemos un vistazo

152
00:08:35,320 --> 00:08:37,853
‫a los usuarios que obtuvimos en este momento.

153
00:08:41,820 --> 00:08:43,610
‫Tenemos estos dos usuarios

154
00:08:43,610 --> 00:08:46,610
‫habituales, tenemos el usuario de prueba y tenemos

155
00:08:46,610 --> 00:08:49,390
‫a Jonas aquí, pero olvidamos su contraseña.

156
00:08:49,390 --> 00:08:51,550
‫Sigamos adelante, eliminemos este

157
00:08:51,550 --> 00:08:53,730
‫usuario y creemos uno nuevo.

158
00:08:53,730 --> 00:08:58,730
‫Muy bien, en Compass, los usuarios, y es

159
00:09:00,400 --> 00:09:01,773
‫este.

160
00:09:07,220 --> 00:09:09,723
‫Vamos a recrear este usuario básicamente.

161
00:09:11,220 --> 00:09:14,793
‫Todo lo que realmente necesitamos son estos dos datos.

162
00:09:17,110 --> 00:09:18,543
‫En realidad eso es registrarse.

163
00:09:26,820 --> 00:09:28,310
‫El mismo nombre, el

164
00:09:29,600 --> 00:09:31,743
‫mismo correo electrónico y la misma contraseña también.

165
00:09:35,657 --> 00:09:38,690
‫En este punto, ya hemos iniciado sesión

166
00:09:38,690 --> 00:09:42,170
‫como este usuario, el llamado Jonas, tengamos eso en cuenta.

167
00:09:42,170 --> 00:09:44,950
‫A continuación, debemos elegir en qué

168
00:09:44,950 --> 00:09:47,600
‫recorrido queremos crear la revisión.

169
00:09:47,600 --> 00:09:49,790
‫Hagámoslo nuevamente aquí en The Forest Hiker

170
00:09:49,790 --> 00:09:52,773
‫para que luego obtengamos múltiples reseñas en el mismo recorrido.

171
00:09:54,240 --> 00:09:55,090
‫Lo que vamos

172
00:09:55,090 --> 00:09:57,380
‫a hacer ahora es básicamente acceder a esa ruta anidada

173
00:09:57,380 --> 00:09:58,430
‫que acabamos de crear.

174
00:10:02,135 --> 00:10:03,350
‫Tenemos los tours.

175
00:10:03,350 --> 00:10:05,980
‫Ahora necesitamos obtener la identificación del

176
00:10:05,980 --> 00:10:08,050
‫recorrido y, nuevamente, usaremos

177
00:10:08,050 --> 00:10:09,323
‫este para

178
00:10:12,490 --> 00:10:16,430
‫The Forest Hiker, y luego recortaremos las reseñas y

179
00:10:16,430 --> 00:10:18,283
‫luego recordaremos una publicación.

180
00:10:19,230 --> 00:10:21,963
‫Luego, también necesitamos especificar la autorización, por lo que

181
00:10:23,100 --> 00:10:27,010
‫el token de portador, y luego ahora en el cuerpo, todo lo

182
00:10:27,010 --> 00:10:28,610
‫que realmente necesitamos es

183
00:10:28,610 --> 00:10:30,673
‫especificar la calificación y la revisión.

184
00:10:36,830 --> 00:10:37,860
‫La calificación es

185
00:10:45,220 --> 00:10:47,160
‫cinco y luego algo de texto aquí.

186
00:10:47,160 --> 00:10:50,913
‫Así que esto ya debería ser suficiente para probarlo.

187
00:10:51,920 --> 00:10:52,753
‫Vamos a enviarlo.

188
00:10:53,769 --> 00:10:56,520
‫Ahora no tenemos permiso para realizar

189
00:10:56,520 --> 00:11:00,100
‫esta acción, por alguna razón, eso es extraño.

190
00:11:00,100 --> 00:11:03,460
‫Nos registramos como este Jonas, y en realidad es

191
00:11:03,460 --> 00:11:05,610
‫solo un usuario normal como se

192
00:11:06,490 --> 00:11:08,203
‫supone que es.

193
00:11:09,090 --> 00:11:11,533
‫Echemos un vistazo a nuestro enrutador.

194
00:11:13,154 --> 00:11:17,170
‫Aquí, está bien, es el usuario, no los usuarios.

195
00:11:19,120 --> 00:11:22,930
‫Un pequeño error como ese puede, como puede

196
00:11:22,930 --> 00:11:27,333
‫ver, bloquear toda esta ruta, así que intentémoslo de nuevo ahora.

197
00:11:28,530 --> 00:11:31,750
‫Y ahora obtenemos la revisión final

198
00:11:31,750 --> 00:11:35,300
‫con el recorrido y el usuario correctamente definidos.

199
00:11:35,300 --> 00:11:38,140
‫Por lo menos eso espero.

200
00:11:38,140 --> 00:11:41,250
‫Verá, el ID del recorrido termina aquí en 951, por lo

201
00:11:41,250 --> 00:11:43,260
‫que es exactamente el mismo aquí.

202
00:11:43,260 --> 00:11:47,640
‫El usuario es este 1f3, y de hecho, es

203
00:11:47,640 --> 00:11:49,343
‫exactamente el mismo.

204
00:11:50,660 --> 00:11:53,280
‫Muy bien, y ahora deberíamos poder confirmar

205
00:11:53,280 --> 00:11:56,170
‫eso, y este tour de obtención aquí

206
00:11:56,170 --> 00:11:59,230
‫ya es en realidad en el que estábamos

207
00:11:59,230 --> 00:12:01,165
‫creando la nueva revisión.

208
00:12:01,165 --> 00:12:04,460
‫Echemos un vistazo y, de hecho,

209
00:12:04,460 --> 00:12:06,660
‫ahora tenemos dos reseñas.

210
00:12:06,660 --> 00:12:09,140
‫Este es el que acabamos de crear.

211
00:12:09,140 --> 00:12:11,790
‫Está en el recorrido correcto y, por

212
00:12:11,790 --> 00:12:15,450
‫supuesto, también el usuario correcto con el nombre de Jonas.

213
00:12:15,450 --> 00:12:17,973
‫Impresionante, eso es realmente genial.

214
00:12:19,620 --> 00:12:22,520
‫Sigamos adelante y salvemos esto.

215
00:12:22,520 --> 00:12:24,720
‫Voy a crear una nueva carpeta aquí nuevamente.

216
00:12:25,610 --> 00:12:29,473
‫Voy a llamarlo reseñas de barras inclinadas.

217
00:12:31,086 --> 00:12:33,663
‫Ahora aquí, creemos,

218
00:12:34,705 --> 00:12:39,705
‫creemos una nueva reseña en el recorrido.

219
00:12:46,220 --> 00:12:49,537
‫Eso debería estar afuera y así.

220
00:12:54,397 --> 00:12:56,103
‫De hecho, pongamos eso aquí.

221
00:12:57,450 --> 00:13:01,293
‫Realmente no funciona como debería por alguna razón.

222
00:13:02,130 --> 00:13:03,403
‫Y aquí vamos.

223
00:13:05,800 --> 00:13:08,260
‫Muy bien, eso funcionó bien,

224
00:13:08,260 --> 00:13:10,870
‫pero como mencioné antes, la implementación es

225
00:13:10,870 --> 00:13:13,450
‫un poco confusa en este punto.

226
00:13:13,450 --> 00:13:16,890
‫Y nuevamente, eso se debe a que técnicamente definimos una ruta

227
00:13:16,890 --> 00:13:19,333
‫de revisión en el enrutador de recorrido.

228
00:13:20,220 --> 00:13:22,650
‫Eso es un poco confuso, por lo que en

229
00:13:22,650 --> 00:13:24,193
‫el siguiente video lo arreglaremos.

