﻿1
00:00:01,530 --> 00:00:03,010
‫Instructor: En el último

2
00:00:03,010 --> 00:00:05,020
‫par de conferencias, espero que haya comenzado

3
00:00:05,020 --> 00:00:06,870
‫a obtener los fundamentos del desarrollo Express.

4
00:00:06,870 --> 00:00:10,190
‫Entonces, ahora es el momento perfecto para profundizar un poco

5
00:00:10,190 --> 00:00:11,750
‫más en cómo funciona

6
00:00:11,750 --> 00:00:14,380
‫Express, y para eso necesitamos hablar sobre el

7
00:00:14,380 --> 00:00:16,633
‫middleware y el ciclo de solicitud-respuesta.

8
00:00:17,550 --> 00:00:20,670
‫Entonces, realmente la esencia del desarrollo Express

9
00:00:20,670 --> 00:00:21,770
‫es comprender

10
00:00:21,770 --> 00:00:24,960
‫y luego usar el ciclo de solicitud-respuesta.

11
00:00:24,960 --> 00:00:27,280
‫Así que quiero dejar esa idea

12
00:00:27,280 --> 00:00:29,890
‫realmente clara de manera visual en este video.

13
00:00:29,890 --> 00:00:32,410
‫Entonces, para comenzar el ciclo de solicitud-respuesta,

14
00:00:32,410 --> 00:00:36,720
‫o la aplicación Express recibe una solicitud cuando alguien llega a un

15
00:00:36,720 --> 00:00:39,310
‫servidor para el que luego creará un objeto

16
00:00:39,310 --> 00:00:41,170
‫de solicitud y respuesta.

17
00:00:41,170 --> 00:00:43,530
‫Luego, esos datos se

18
00:00:43,530 --> 00:00:48,160
‫utilizarán y procesarán para generar y enviar una respuesta significativa.

19
00:00:48,160 --> 00:00:50,740
‫Ahora, para procesar esos datos,

20
00:00:50,740 --> 00:00:53,740
‫en Express usamos algo llamado middleware, que

21
00:00:53,740 --> 00:00:57,220
‫puede manipular la solicitud o el objeto de respuesta.

22
00:00:57,220 --> 00:01:00,680
‫O realmente ejecutar cualquier otro código que nos guste.

23
00:01:00,680 --> 00:01:02,820
‫Por lo tanto, el middleware no siempre

24
00:01:02,820 --> 00:01:05,230
‫tiene que tratarse solo de la solicitud o del objeto

25
00:01:05,230 --> 00:01:08,070
‫de respuesta, sino que generalmente se trata principalmente de la solicitud.

26
00:01:08,070 --> 00:01:10,880
‫Y de hecho, ya usamos middleware antes.

27
00:01:10,880 --> 00:01:15,130
‫Usamos Express dot JSON para obtener acceso al cuerpo de la solicitud en el

28
00:01:15,130 --> 00:01:16,600
‫objeto de la solicitud.

29
00:01:16,600 --> 00:01:18,250
‫¿Recuérdalo?

30
00:01:18,250 --> 00:01:20,600
‫Ahora se llama middleware, recuerda porque

31
00:01:20,600 --> 00:01:23,930
‫es una función que se ejecuta entre, por lo

32
00:01:23,930 --> 00:01:26,570
‫tanto, en medio de recibir la solicitud

33
00:01:26,570 --> 00:01:28,540
‫y enviar la respuesta.

34
00:01:28,540 --> 00:01:31,020
‫Y de hecho, podemos decir que en

35
00:01:31,020 --> 00:01:33,010
‫Express, todo es middleware.

36
00:01:33,010 --> 00:01:35,270
‫Incluso nuestras definiciones de ruta.

37
00:01:35,270 --> 00:01:38,460
‫Entonces, nuevamente, incluso cuando definimos nuestras rutas, podemos pensar

38
00:01:38,460 --> 00:01:42,120
‫en las funciones del controlador de ruta que escribimos como

39
00:01:42,120 --> 00:01:43,600
‫funciones de middleware.

40
00:01:43,600 --> 00:01:45,120
‫Son simplemente funciones de

41
00:01:45,120 --> 00:01:48,010
‫middleware que solo se ejecutan para determinadas rutas.

42
00:01:48,010 --> 00:01:49,290
‫¿Okey?

43
00:01:49,290 --> 00:01:52,840
‫Ahora, algunos ejemplos de middleware son Express dot JSON,

44
00:01:52,840 --> 00:01:54,860
‫que también se llama body-parser, y

45
00:01:54,860 --> 00:01:56,870
‫que ya usamos antes.

46
00:01:56,870 --> 00:01:59,100
‫O alguna funcionalidad de

47
00:01:59,100 --> 00:02:02,130
‫registro, o configurar algunos encabezados http específicos.

48
00:02:02,130 --> 00:02:05,760
‫Las posibilidades son realmente infinitas con el middleware.

49
00:02:05,760 --> 00:02:08,460
‫Muy bien, y ahora en términos más

50
00:02:08,460 --> 00:02:11,000
‫técnicos, decimos que todo el middleware

51
00:02:11,000 --> 00:02:12,370
‫que usamos

52
00:02:12,370 --> 00:02:15,200
‫en nuestra aplicación se llama Middleware Stack.

53
00:02:15,200 --> 00:02:17,720
‫Lo que es muy importante tener en cuenta aquí

54
00:02:17,720 --> 00:02:20,230
‫es que el orden del middleware en la pila

55
00:02:20,230 --> 00:02:22,540
‫se define en realidad por el orden en

56
00:02:22,540 --> 00:02:24,500
‫que se definen en el código.

57
00:02:24,500 --> 00:02:27,110
‫Entonces, un middleware que aparece primero en el

58
00:02:27,110 --> 00:02:29,920
‫código, se ejecuta antes que uno que aparece más tarde.

59
00:02:29,920 --> 00:02:33,170
‫Por eso, el orden del código es muy importante en Express.

60
00:02:33,170 --> 00:02:34,360
‫¿Okey?

61
00:02:34,360 --> 00:02:38,010
‫Ahora, puede pensar en todo el proceso de esta manera,

62
00:02:38,010 --> 00:02:40,120
‫nuestro objeto de solicitud y

63
00:02:40,120 --> 00:02:41,890
‫respuesta que se creó

64
00:02:41,890 --> 00:02:45,310
‫al principio pasa por cada middleware donde se procesa,

65
00:02:45,310 --> 00:02:48,710
‫o donde solo se ejecuta algún otro código.

66
00:02:48,710 --> 00:02:51,370
‫Luego, al final de cada función de middleware, se llama

67
00:02:51,370 --> 00:02:53,150
‫a la siguiente función, que es

68
00:02:53,150 --> 00:02:55,340
‫una función a la que tenemos acceso en

69
00:02:55,340 --> 00:02:56,860
‫cada función de middleware.

70
00:02:56,860 --> 00:02:59,580
‫Al igual que los objetos de solicitud y respuesta.

71
00:02:59,580 --> 00:03:02,960
‫Y, por supuesto, lo veremos en código en el siguiente video.

72
00:03:02,960 --> 00:03:05,375
‫Entonces, cuando llamemos a la siguiente

73
00:03:05,375 --> 00:03:08,470
‫función, el próximo middleware de la pila se

74
00:03:08,470 --> 00:03:11,960
‫ejecutará exactamente con el mismo objeto de solicitud y respuesta.

75
00:03:11,960 --> 00:03:14,480
‫Y eso pasa con todos los middlewares

76
00:03:14,480 --> 00:03:16,460
‫hasta que llegamos al último.

77
00:03:16,460 --> 00:03:17,830
‫Y así, así,

78
00:03:17,830 --> 00:03:20,360
‫la solicitud inicial y el objeto de

79
00:03:20,360 --> 00:03:23,400
‫respuesta pasan por cada middleware paso a paso.

80
00:03:23,400 --> 00:03:25,490
‫Y puede pensar en todo este

81
00:03:25,490 --> 00:03:29,190
‫proceso como una especie de canalización por la que pasan nuestros datos,

82
00:03:29,190 --> 00:03:33,440
‫de la misma forma que se canaliza desde la solicitud hasta la respuesta final.

83
00:03:33,440 --> 00:03:34,472
‫¿Está bien?

84
00:03:34,472 --> 00:03:36,900
‫Ahora, sobre la última función de middleware,

85
00:03:36,900 --> 00:03:40,230
‫generalmente es un controlador de ruta tal como lo codificamos antes.

86
00:03:40,230 --> 00:03:43,250
‫Entonces, en este controlador, en realidad no llamamos a la siguiente

87
00:03:43,250 --> 00:03:45,270
‫función para pasar al siguiente middleware.

88
00:03:45,270 --> 00:03:47,950
‫En cambio, finalmente enviamos los datos

89
00:03:47,950 --> 00:03:49,800
‫de respuesta al cliente.

90
00:03:49,800 --> 00:03:50,633
‫Y

91
00:03:50,633 --> 00:03:53,983
‫así, luego terminamos el llamado ciclo de solicitud-respuesta.

92
00:03:55,380 --> 00:03:58,590
‫Entonces, el ciclo de solicitud-respuesta es realmente todo

93
00:03:58,590 --> 00:04:00,900
‫lo que hablamos aquí juntos.

94
00:04:00,900 --> 00:04:03,040
‫Comienza con la solicitud entrante, luego

95
00:04:03,040 --> 00:04:05,980
‫ejecuta todo el middleware en la pila de

96
00:04:05,980 --> 00:04:07,240
‫middleware paso a

97
00:04:07,240 --> 00:04:10,513
‫paso y finalmente envía la respuesta para finalizar el ciclo.

98
00:04:11,370 --> 00:04:13,900
‫Verá, realmente no es complicado.

99
00:04:13,900 --> 00:04:16,450
‫En realidad, es solo un proceso lineal.

100
00:04:16,450 --> 00:04:19,200
‫Pero desearía que alguien me hubiera mostrado algo

101
00:04:19,200 --> 00:04:22,000
‫como esto cuando estaba aprendiendo a crear aplicaciones Express.

102
00:04:22,000 --> 00:04:23,420
‫Quiero decir que

103
00:04:23,420 --> 00:04:26,090
‫podría construirlos, pero al principio realmente no

104
00:04:26,090 --> 00:04:29,230
‫entendía todo este ciclo de solicitud-respuesta como este.

105
00:04:29,230 --> 00:04:30,760
‫Fue muy confuso.

106
00:04:30,760 --> 00:04:33,280
‫Por eso les muestro esto, porque

107
00:04:33,280 --> 00:04:36,710
‫creo que será mucho, mucho más fácil para ustedes

108
00:04:36,710 --> 00:04:38,800
‫pasar al curso ahora,

109
00:04:38,800 --> 00:04:42,383
‫después de comprender exactamente cómo funcionan las aplicaciones Express.

