﻿1
00:00:01,210 --> 00:00:03,880
‫Instructor: Entonces, después de toda la charla sobre

2
00:00:03,880 --> 00:00:05,290
‫middleware, sigamos adelante

3
00:00:05,290 --> 00:00:07,463
‫y creemos nuestras propias funciones de middleware.

4
00:00:09,000 --> 00:00:10,810
‫Y nuevamente, recuerde que

5
00:00:10,810 --> 00:00:12,930
‫en realidad ya usamos middleware antes.

6
00:00:12,930 --> 00:00:14,380
‫Así que echemos un vistazo a eso.

7
00:00:15,730 --> 00:00:18,350
‫Y, en algún lugar aquí arriba.

8
00:00:18,350 --> 00:00:20,450
‫Y entonces, ves que para

9
00:00:20,450 --> 00:00:24,530
‫usar middleware, usamos el uso de puntos de aplicaciones, ¿de acuerdo?

10
00:00:24,530 --> 00:00:28,190
‫Entonces, el método de uso es el que usamos para,

11
00:00:28,190 --> 00:00:30,030
‫sí, realmente usar middleware.

12
00:00:30,030 --> 00:00:33,800
‫Entonces, agregue middleware a nuestra pila de middleware, ¿de acuerdo?

13
00:00:33,800 --> 00:00:37,520
‫Entonces, este punto expreso json aquí que llama a este método json

14
00:00:37,520 --> 00:00:39,620
‫básicamente devuelve una función, ¿de acuerdo?

15
00:00:39,620 --> 00:00:42,650
‫Y entonces esa función se agrega a la pila de middleware.

16
00:00:42,650 --> 00:00:43,900
‫Y así, similar a

17
00:00:43,900 --> 00:00:46,220
‫eso, podemos crear nuestra propia función de middleware.

18
00:00:46,220 --> 00:00:48,190
‫Entonces, hagámoslo ahora.

19
00:00:48,190 --> 00:00:51,283
‫Y entonces, por supuesto, todavía necesitamos usar el uso de puntos de la aplicación.

20
00:00:53,840 --> 00:00:56,810
‫Bien, y ahora, aquí, todo lo que tenemos que hacer

21
00:00:56,810 --> 00:01:00,820
‫es la ruta en nuestra función que queremos agregar a la pila de middleware.

22
00:01:00,820 --> 00:01:02,730
‫Entonces, recuerde del último video que,

23
00:01:02,730 --> 00:01:04,520
‫por supuesto, en cada función

24
00:01:04,520 --> 00:01:08,340
‫de middleware, tenemos acceso a la solicitud y la respuesta, ¿de acuerdo?

25
00:01:08,340 --> 00:01:10,663
‫Pero también tenemos la siguiente función.

26
00:01:11,890 --> 00:01:15,060
‫Y así, así, editamos como tercer argumento para

27
00:01:15,060 --> 00:01:17,580
‫esta función de middleware, ¿de acuerdo?

28
00:01:17,580 --> 00:01:19,970
‫Y así, Express entonces sabe que

29
00:01:19,970 --> 00:01:22,370
‫en realidad estamos definiendo un middleware aquí.

30
00:01:23,270 --> 00:01:24,820
‫Bien.

31
00:01:24,820 --> 00:01:26,160
‫Ahora, al igual

32
00:01:26,160 --> 00:01:28,920
‫que antes, en realidad, podríamos haber llamado a este

33
00:01:28,920 --> 00:01:32,950
‫argumento aquí de otra manera, como X, o N, o, realmente no importa.

34
00:01:32,950 --> 00:01:34,270
‫Lo que importa es

35
00:01:34,270 --> 00:01:36,540
‫que es el tercer argumento de esta función.

36
00:01:36,540 --> 00:01:39,360
‫Entonces, express básicamente pasa la siguiente

37
00:01:39,360 --> 00:01:42,780
‫función como tercer argumento a esta función de middleware.

38
00:01:42,780 --> 00:01:44,500
‫Y luego podemos llamarlo como queramos.

39
00:01:44,500 --> 00:01:47,720
‫Pero nuevamente, lo siguiente es realmente la convención en

40
00:01:47,720 --> 00:01:49,420
‫express, y para

41
00:01:49,420 --> 00:01:52,450
‫evitar confusiones, siempre usamos este nombre, ¿de acuerdo?

42
00:01:52,450 --> 00:01:54,250
‫Y lo mismo para solicitud

43
00:01:54,250 --> 00:01:57,590
‫y respuesta, como mencioné antes, podríamos llamarlos de otra manera.

44
00:01:57,590 --> 00:02:00,410
‫Pero la convención es llamarlos así.

45
00:02:00,410 --> 00:02:02,470
‫De todos modos, registremos algo en la consola,

46
00:02:02,470 --> 00:02:04,080
‫aquí en esta función de

47
00:02:04,080 --> 00:02:06,650
‫middleware, solo para que tengamos algo de código para ejecutar

48
00:02:06,650 --> 00:02:08,423
‫cada vez que haya una nueva solicitud.

49
00:02:09,280 --> 00:02:10,410
‫Digamos hola

50
00:02:12,510 --> 00:02:13,753
‫desde el middleware.

51
00:02:15,850 --> 00:02:18,980
‫Y agregue algunos emoji aquí, nuevamente, para que resalte un poco.

52
00:02:18,980 --> 00:02:20,133
‫Realmente me gusta eso.

53
00:02:21,876 --> 00:02:22,709
‫¿Y que pasa aqui?

54
00:02:22,709 --> 00:02:23,750
‫Ah bien.

55
00:02:23,750 --> 00:02:26,210
‫Entonces ese es el código que queremos ejecutar aquí.

56
00:02:26,210 --> 00:02:28,690
‫Y ahora, tal como hablamos en el

57
00:02:28,690 --> 00:02:31,780
‫último video, necesitamos llamar a la siguiente función, ¿de acuerdo?

58
00:02:31,780 --> 00:02:33,510
‫Y si no llamamos a

59
00:02:33,510 --> 00:02:35,570
‫continuación aquí, bueno, entonces el ciclo de solicitud

60
00:02:35,570 --> 00:02:37,750
‫/ respuesta realmente se atascaría en este punto.

61
00:02:37,750 --> 00:02:39,290
‫No podríamos seguir

62
00:02:39,290 --> 00:02:43,090
‫adelante y nunca jamás enviaríamos una respuesta al cliente.

63
00:02:43,090 --> 00:02:45,660
‫Así que no puedo enfatizar lo suficiente lo importante

64
00:02:45,660 --> 00:02:48,773
‫que es no olvidar nunca usar next en todo su middleware.

65
00:02:50,230 --> 00:02:52,290
‫Está bien, y es tan simple como eso.

66
00:02:52,290 --> 00:02:55,880
‫Todo lo que tenemos que hacer es especificar a continuación.

67
00:02:55,880 --> 00:02:57,330
‫Entonces, este argumento aquí.

68
00:02:57,330 --> 00:02:59,820
‫Y luego llamar a esa función de esta manera.

69
00:02:59,820 --> 00:03:00,653
‫Bueno.

70
00:03:00,653 --> 00:03:03,087
‫Y con eso, estamos realmente listos para probarlo.

71
00:03:03,087 --> 00:03:04,370
‫Y todo lo que tenemos

72
00:03:04,370 --> 00:03:06,763
‫que hacer es enviar una simple solicitud a nuestra API.

73
00:03:08,900 --> 00:03:11,270
‫Entonces, aquí está la API.

74
00:03:11,270 --> 00:03:13,083
‫Cerremos este de aquí.

75
00:03:14,210 --> 00:03:16,560
‫Entonces, realmente no importa, porque esto,

76
00:03:16,560 --> 00:03:18,980
‫por supuesto, se aplica a todas las solicitudes.

77
00:03:18,980 --> 00:03:20,420
‫Entonces, regresemos.

78
00:03:20,420 --> 00:03:22,760
‫Y de hecho, hemos recibido un saludo

79
00:03:22,760 --> 00:03:25,400
‫desde el middleware registrado en nuestra consola, ¿de acuerdo?

80
00:03:25,400 --> 00:03:26,313
‫Que bien.

81
00:03:27,240 --> 00:03:30,140
‫Y quería tocar rápidamente lo que acabo de decir antes, que

82
00:03:30,140 --> 00:03:32,150
‫es que este middleware aquí se

83
00:03:32,150 --> 00:03:35,160
‫aplica a todas y cada una de las solicitudes, ¿de acuerdo?

84
00:03:35,160 --> 00:03:37,600
‫Y eso es porque no especificamos ninguna ruta.

85
00:03:37,600 --> 00:03:40,850
‫Entonces, recuerde que antes dije que todos los controladores de ruta aquí

86
00:03:40,850 --> 00:03:43,710
‫son en realidad una especie de middleware en sí mismos.

87
00:03:43,710 --> 00:03:45,200
‫Son simplemente funciones de

88
00:03:45,200 --> 00:03:47,790
‫middleware que solo se aplican a una determinada URL.

89
00:03:47,790 --> 00:03:50,010
‫Así que una ruta determinada, está bien.

90
00:03:50,010 --> 00:03:52,980
‫Pero estas funciones de middleware más

91
00:03:52,980 --> 00:03:54,900
‫simples que definimos

92
00:03:54,900 --> 00:03:58,080
‫aquí, bueno, se aplicarán a cada solicitud.

93
00:03:58,080 --> 00:04:00,070
‫Al menos, si el controlador de ruta

94
00:04:00,070 --> 00:04:01,820
‫viene antes de este middleware.

95
00:04:01,820 --> 00:04:04,250
‫Así que déjame mostrarte algo.

96
00:04:04,250 --> 00:04:06,610
‫Y lo voy a cortar de aquí

97
00:04:06,610 --> 00:04:08,670
‫y ahora lo pondré aquí después

98
00:04:08,670 --> 00:04:10,563
‫de este controlador de ruta.

99
00:04:12,240 --> 00:04:14,910
‫Entonces, ¿qué crees que va a

100
00:04:14,910 --> 00:04:18,550
‫pasar ahora cuando haga una llamada a esta ruta?

101
00:04:18,550 --> 00:04:20,900
‫Así que veamos qué pasa.

102
00:04:20,900 --> 00:04:24,040
‫Así que esta ruta exacta, la que acabo de mostrarles, déjame

103
00:04:24,040 --> 00:04:25,640
‫enviar la solicitud a eso.

104
00:04:26,520 --> 00:04:29,420
‫Y ahora regresemos y ahora no tenemos el

105
00:04:29,420 --> 00:04:31,000
‫saludo del middleware.

106
00:04:31,000 --> 00:04:32,460
‫Entonces, ¿por qué es eso?

107
00:04:32,460 --> 00:04:34,930
‫Bueno, simplemente porque este middleware, entonces este

108
00:04:34,930 --> 00:04:36,580
‫controlador de ruta aquí,

109
00:04:36,580 --> 00:04:40,200
‫viene antes que esta función de middleware que tenemos aquí.

110
00:04:40,200 --> 00:04:42,330
‫Y este controlador de ruta, que en este

111
00:04:42,330 --> 00:04:46,570
‫caso es obtener todos los recorridos, en realidad finaliza el ciclo de respuesta a la solicitud.

112
00:04:46,570 --> 00:04:48,130
‫Así que echemos un vistazo a eso.

113
00:04:48,130 --> 00:04:49,763
‫Así que tenemos todos los tours.

114
00:04:51,220 --> 00:04:52,600
‫Entonces, ¿dónde está eso?

115
00:04:52,600 --> 00:04:56,100
‫Sí, aquí está la función y enviando un resultado con

116
00:04:56,100 --> 00:04:58,550
‫res dot json, en realidad finalizamos

117
00:04:58,550 --> 00:05:01,090
‫el ciclo de respuesta a la solicitud.

118
00:05:01,090 --> 00:05:03,440
‫Entonces, el siguiente middleware en la pila,

119
00:05:03,440 --> 00:05:05,430
‫que en este caso, es

120
00:05:06,280 --> 00:05:09,700
‫este, por lo que no se llamará a nuestro personalizado.

121
00:05:09,700 --> 00:05:13,300
‫De nuevo, porque el ciclo ya ha terminado, está bien.

122
00:05:13,300 --> 00:05:15,930
‫Así que asegúrese de comprender que este orden realmente

123
00:05:15,930 --> 00:05:18,200
‫importa mucho en expreso, de acuerdo.

124
00:05:18,200 --> 00:05:20,490
‫Es fundamental entender que así

125
00:05:20,490 --> 00:05:23,590
‫es como funcionan las aplicaciones exprés, de acuerdo.

126
00:05:23,590 --> 00:05:25,760
‫Entonces, para probar eso, intentemos

127
00:05:25,760 --> 00:05:27,730
‫ver qué sucede cuando

128
00:05:27,730 --> 00:05:30,190
‫hacemos una solicitud a esta ruta.

129
00:05:30,190 --> 00:05:33,173
‫Entonces, para obtener el recorrido, actualizar el recorrido o eliminar el recorrido.

130
00:05:34,900 --> 00:05:38,090
‫Así que hagamos esto, enviemos la solicitud aquí,

131
00:05:38,090 --> 00:05:41,150
‫y regresemos y ahora tenemos un saludo

132
00:05:41,150 --> 00:05:42,740
‫desde el middleware.

133
00:05:42,740 --> 00:05:45,180
‫Entonces eso es realmente lo que esperábamos, ¿verdad?

134
00:05:45,180 --> 00:05:48,120
‫Eso es porque, por supuesto, este middleware aquí ahora

135
00:05:48,120 --> 00:05:50,630
‫está antes del controlador de ruta.

136
00:05:50,630 --> 00:05:53,390
‫Y, por lo tanto, es parte de la pila de

137
00:05:53,390 --> 00:05:57,050
‫middleware que se ejecuta antes de que finalice el ciclo de respuesta a la solicitud.

138
00:05:57,050 --> 00:05:58,673
‫¿Tiene sentido?

139
00:06:00,630 --> 00:06:03,250
‫Entonces, retomemos eso y, por lo general,

140
00:06:03,250 --> 00:06:05,560
‫definimos este tipo de middleware global

141
00:06:05,560 --> 00:06:08,183
‫aquí antes de todos nuestros controladores de ruta.

142
00:06:09,500 --> 00:06:11,830
‫Muy bien, esta es una función

143
00:06:11,830 --> 00:06:15,500
‫de middleware muy simple que acabamos de definir para ejecutar algún código.

144
00:06:15,500 --> 00:06:17,490
‫Pero hagamos otro.

145
00:06:17,490 --> 00:06:18,920
‫Y, por supuesto,

146
00:06:18,920 --> 00:06:21,800
‫podemos tener tantas funciones de middleware como queramos.

147
00:06:21,800 --> 00:06:23,170
‫Y esta vez realmente

148
00:06:23,170 --> 00:06:25,053
‫queremos manipular el objeto de solicitud.

149
00:06:27,040 --> 00:06:29,090
‫Entonces, la firma aquí es siempre

150
00:06:29,090 --> 00:06:31,343
‫la misma, siempre solicitud, respuesta y siguiente.

151
00:06:32,890 --> 00:06:35,370
‫Y ahora manipulemos realmente la solicitud.

152
00:06:35,370 --> 00:06:36,800
‫Todo lo que queremos

153
00:06:36,800 --> 00:06:39,990
‫hacer en este caso es agregar la hora actual a la solicitud.

154
00:06:39,990 --> 00:06:42,110
‫Entonces, simplemente podemos definir una propiedad

155
00:06:42,110 --> 00:06:44,963
‫en el objeto de solicitud llamado tiempo de solicitud.

156
00:06:47,480 --> 00:06:50,300
‫Y luego configúrelo en una nueva

157
00:06:50,300 --> 00:06:51,210
‫fecha,

158
00:06:51,210 --> 00:06:54,300
‫que básicamente se traduce en ahora.

159
00:06:54,300 --> 00:06:57,230
‫Y luego podemos usar una función de fecha muy útil,

160
00:06:57,230 --> 00:06:59,670
‫que se llama a una cadena ISO, que

161
00:06:59,670 --> 00:07:01,520
‫luego la convertirá en una cadena

162
00:07:01,520 --> 00:07:03,330
‫agradable y legible para nosotros.

163
00:07:03,330 --> 00:07:05,930
‫Entonces, supongamos que tenemos un controlador de ruta

164
00:07:05,930 --> 00:07:07,860
‫que realmente necesita la

165
00:07:07,860 --> 00:07:10,310
‫información sobre cuándo ocurre exactamente la solicitud.

166
00:07:10,310 --> 00:07:12,860
‫Entonces, la solución muy simple es

167
00:07:12,860 --> 00:07:16,470
‫simplemente agregar algo como esto a una solicitud usando middleware.

168
00:07:16,470 --> 00:07:17,520
‫¿Bien?

169
00:07:17,520 --> 00:07:18,960
‫Ahora, no olvide, por

170
00:07:18,960 --> 00:07:21,890
‫supuesto, llamar al siguiente middleware de la pila, está bien.

171
00:07:21,890 --> 00:07:26,830
‫Así que ahora mismo, tenemos tiempo de solicitud para todas las solicitudes.

172
00:07:26,830 --> 00:07:29,800
‫Entonces, ahora podemos usar algún controlador de ruta

173
00:07:29,800 --> 00:07:32,850
‫aquí, por ejemplo, (murmullos) para que todos los recorridos

174
00:07:32,850 --> 00:07:35,163
‫simplemente lo registren en la consola.

175
00:07:36,640 --> 00:07:40,583
‫Entonces, el registro de puntos de la consola y su tiempo de solicitud en realidad.

176
00:07:42,130 --> 00:07:46,170
‫Está bien, o incluso podríamos enviar esto en la respuesta también.

177
00:07:46,170 --> 00:07:47,460
‫Déjame probar eso.

178
00:07:47,460 --> 00:07:49,590
‫Y simplemente llamemos a

179
00:07:52,670 --> 00:07:56,830
‫este solicitado en y req dot request time.

180
00:07:56,830 --> 00:07:57,870
‫Ese es.

181
00:07:57,870 --> 00:08:00,160
‫Y entonces, sí, sigamos adelante y averigüemos esto.

182
00:08:00,160 --> 00:08:02,840
‫Entonces nuestro middleware es correcto, ¿verdad?

183
00:08:02,840 --> 00:08:05,870
‫Sí, entonces llamamos a continuación, cuando hayamos terminado, así

184
00:08:05,870 --> 00:08:07,413
‫que probemos esto ahora.

185
00:08:08,450 --> 00:08:10,273
‫Recuerde que está en todos los recorridos.

186
00:08:11,310 --> 00:08:14,000
‫Y cuando regresemos ahora, o cuando

187
00:08:14,000 --> 00:08:16,420
‫subamos, bueno, debería estar aquí.

188
00:08:16,420 --> 00:08:17,973
‫Entonces, ¿qué está mal aquí?

189
00:08:18,920 --> 00:08:20,060
‫Verá que

190
00:08:20,060 --> 00:08:22,430
‫aquí abajo, en realidad solo registramos una

191
00:08:22,430 --> 00:08:27,230
‫función y sí, por supuesto, en realidad no llamamos a las dos cadenas ISO.

192
00:08:27,230 --> 00:08:31,000
‫Entonces es un método que tenemos que llamarlo.

193
00:08:31,000 --> 00:08:33,930
‫Así que dale una oportunidad, inténtalo de nuevo.

194
00:08:33,930 --> 00:08:37,790
‫Y ahora hemos solicitado en y luego la fecha de hoy.

195
00:08:37,790 --> 00:08:38,740
‫Tan perfecto.

196
00:08:38,740 --> 00:08:40,860
‫Eso vino de nuestro middleware.

197
00:08:40,860 --> 00:08:44,980
‫Así que simplemente porque agregamos esa propiedad a nuestra solicitud.

198
00:08:44,980 --> 00:08:46,250
‫Excelente.

199
00:08:46,250 --> 00:08:49,280
‫Así que espero que con eso, hayas dado un gran

200
00:08:49,280 --> 00:08:52,730
‫paso adelante para comprender realmente cómo funciona la aplicación Node, cómo

201
00:08:52,730 --> 00:08:53,810
‫funciona el middleware,

202
00:08:53,810 --> 00:08:56,370
‫cómo funciona todo el ciclo de respuesta a

203
00:08:56,370 --> 00:08:58,300
‫la solicitud, porque eso realmente marcará

204
00:08:58,300 --> 00:09:00,453
‫la diferencia cuando escribas sus propias aplicaciones.

