‫Narrador: Mejoremos ahora la implementación
‫de la ruta anidada que codificamos en la última lección.
‫Y
‫para eso, usaremos una función rápida avanzada especial.
‫Entonces, como recordará, en
‫el último video implementamos una ruta de publicación anidada
‫simple, así que solo esta aquí.
‫Derecha. Y esto significa que la ruta
‫de revisión está dentro de la ruta del recorrido.
‫Y nuevamente, porque las reseñas pertenecen a tours en cierto sentido.
‫¿Derecha?
‫Y esto es algo muy común en el diseño de Api.
‫Ahora, el problema con esta implementación es que, por
‫supuesto, es un poco desordenado.
‫Y eso se debe a que ponemos una ruta para crear una revisión
‫en el enrutador del recorrido.
‫Simplemente porque una ruta comienza con un recorrido de barra.
‫Eso es un poco
‫confuso, y lo que también
‫es confuso es que tenemos algo muy similar a
‫esto aquí, también en nuestra ruta de revisión.
‫Entonces, básicamente esto de aquí.
‫Entonces, cuando creamos una nueva revisión sin la ruta anidada,
‫esta parte del código aquí es exactamente la misma
‫que esta. ¿Derecha?
‫Y así, además de que esto
‫es un poco confuso, también tenemos código duplicado que tendríamos
‫que mantener en dos lugares separados en caso de que quisiéramos cambiar algo.
‫Y, de nuevo, esa es una práctica muy mala.
‫Y ahora solucionemos esto usando una función rápida
‫avanzada llamada mergeParams.
‫Primero que nada, eliminemos este código
‫aquí que realmente no pertenece al enrutador del tour.
‫A continuación, importaremos el enrutador de revisión a
‫este enrutador de recorrido.
‫¿Okey?
‫Así que en este momento estamos importando el controlador
‫de revisión, pero en realidad queremos el enrutador de revisión.
‫Así que deshagámonos de este
‫y, de hecho, lo voy a eliminar por completo.
‫Y
‫ahora, el enrutador
‫de revisión.
‫Y esta bien.
‫Entonces, obtengamos este código y colóquelo aquí en la parte superior, solo
‫para que
‫veamos lo que estamos haciendo, porque
‫en realidad crearemos un código nuevo
‫aquí en la parte superior.
‫Entonces, lo que vamos a
‫hacer aquí
‫es decir enrutador. usar.
‫Entonces, básicamente diremos que este enrutador de recorrido debería
‫usar el enrutador de revisión
‫en caso de que alguna vez encuentre una ruta como esta.
‫Y revisar rutas.
‫¿Lo llamé rutas o enrutador?
‫Debería llamarse enrutador.
‫¿Okey?
‫Por lo tanto, tenga en cuenta que un enrutador en
‫sí mismo es solo un middleware.
‫Y entonces podemos usar el método de uso en él,
‫y luego decir que para esta ruta específica
‫aquí, queremos usar el enrutador de revisión en su lugar.
‫¿Okey?
‫Y esto es, en realidad, volver a montar un enrutador.
‫Entonces, si echas un vistazo a eso, aquí en
‫la aplicación. js,
‫eso es exactamente lo que hicimos.
‫Así lo hicimos. use,
‫luego la URL y
‫luego el enrutador.
‫Y aquí, lo que
‫estamos haciendo es exactamente lo mismo.
‫Entonces, este es el enrutador de gira, y entonces decimos
‫bien cada vez que encuentre una URL como esta,
‫bueno, entonces solo use el enrutador de revisión.
‫Y entonces, ahora mismo, cuando tengamos una URL como
‫esta, comenzará ingresando al enrutador de recorrido aquí, está bien, porque,
‫nuevamente comienza con recorridos de barra, está bien,
‫entonces
‫básicamente se redirige al enrutador de recorrido,
‫luego cuando llega al enrutador del
‫recorrido, luego coincidirá con esta
‫URL aquí, y luego será redirigido nuevamente al enrutador de revisión.
‫Y así, tenemos el enrutador
‫de gira y el enrutador de revisión
‫muy bien separados y desacoplados entre sí.
‫Pero ahora, en realidad todavía falta una pieza porque
‫en este momento este enrutador de revisión
‫aquí no tiene acceso a este parámetro de identificación de recorrido, está bien.
‫Y ahora necesitamos habilitar el enrutador
‫de revisión para que realmente tenga acceso a este parámetro aquí también.
‫Pasemos ahora al enrutador de revisión, de acuerdo.
‫Y aquí es donde entran en juego
‫los mergeParams médicos que mencioné
‫al principio.
‫Así que aquí, en el expreso. función del enrutador, podemos
‫especificar algunas opciones, y aquí todo
‫lo que tenemos que hacer es establecer mergeParams
‫en verdadero.
‫Y eso es.
‫Pero, ¿por qué realmente necesitamos esto aquí?
‫Bueno, es porque, por
‫defecto, cada enrutador solo tiene
‫acceso a los parámetros de sus rutas específicas, ¿no?
‫Pero aquí, en esta ruta, por lo que en esta URL de esta publicación, por
‫supuesto, en realidad no hay una identificación de viaje.
‫Pero, aún queremos tener acceso a la
‫identificación del tour que estaba en este otro enrutador, ¿verdad?
‫Así que esto de aquí.
‫Entonces, para tener acceso a ese parámetro
‫en este
‫otro enrutador, necesitamos fusionar físicamente los parámetros, está bien.
‫Y eso es lo que hace mergeParams, establecido en true.
‫Y ahora, no importa si obtenemos una ruta como
‫esta, así que copiemos aquí.
‫Nuevamente, es más fácil visualizarlo con un ejemplo.
‫Y de nuevo, no importa si obtenemos una ruta
‫como esta, o
‫una ruta como esta, ahora todo terminará en este controlador aquí, de acuerdo.
‫Entonces, al final, básicamente, a esta función de controlador.
‫Y nuevamente, eso funciona porque todas las
‫rutas que comienzan con este tipo
‫de patrón aquí serán redirigidas a este enrutador
‫exactamente en esta línea de código aquí, de acuerdo.
‫Así que redirigimos al enrutador de revisión
‫aquí y luego allí coincidirá con esta ruta exacta, de
‫acuerdo.
‫Y gracias a los
‫parámetros de combinación, obtenemos acceso a
‫esta identificación que en realidad proviene del otro enrutador anterior.
‫Excelente.
‫Así que limpiemos un poco
‫aquí, eliminémonos de
‫esto, de
‫esto
‫de aquí, y probémoslo rápidamente ahora.
‫Así que voy a crear una nueva revisión aquí
‫y esta vez probemos con otra herramienta.
‫Así que el vagabundo de la ciudad.
‫Y todo lo que tenemos
‫que hacer es cambiar esa identificación aquí mismo en la URL, ¿verdad?
‫Entonces, la calificación será de
‫tres,
‫y luego estuvo un poco bien.
‫Muy bien, y esta revisión todavía se hará con
‫Jonas, así que desde esta cuenta, está
‫bien, porque
‫todavía es una que está conectada en este momento, está bien.
‫Entonces, enviemos eso,
‫y de hecho aquí obtenemos el recorrido que acabamos de especificar, y
‫sigue siendo el mismo usuario.
‫Así que eso es nuevamente solo para asegurarse de verificar el recorrido
‫para ver si ahora recibe esta
‫revisión y sí, lo hizo.
‫Y ese truco de fusión de parámetros, que acabamos
‫de implementar, en realidad funciona bien
‫y según lo previsto.
‫Ahora, para ver esto en acción, mejor aún,
‫adaptaremos la función de Henry para
‫obtener todas las reseñas de un recorrido específico en
‫el siguiente video.