﻿1
00:00:01,530 --> 00:00:03,010
‫Instrutor: Nas primeiras palestras,

2
00:00:03,010 --> 00:00:05,020
‫espero que você tenha começado a obter

3
00:00:05,020 --> 00:00:06,870
‫os fundamentos do desenvolvimento Express.

4
00:00:06,870 --> 00:00:10,190
‫E agora é o momento perfeito para mergulhar um pouco

5
00:00:10,190 --> 00:00:11,750
‫mais fundo em como

6
00:00:11,750 --> 00:00:14,380
‫o Express funciona e, para isso, precisamos falar

7
00:00:14,380 --> 00:00:16,633
‫sobre middleware e o ciclo de solicitação-resposta.

8
00:00:17,550 --> 00:00:20,670
‫Portanto, a essência do desenvolvimento do

9
00:00:20,670 --> 00:00:21,770
‫Express é

10
00:00:21,770 --> 00:00:24,960
‫entender e usar o ciclo de solicitação-resposta.

11
00:00:24,960 --> 00:00:27,280
‫Então, eu quero deixar essa ideia

12
00:00:27,280 --> 00:00:29,890
‫bem clara de uma forma visual neste vídeo.

13
00:00:29,890 --> 00:00:32,410
‫Portanto, para iniciar o ciclo de

14
00:00:32,410 --> 00:00:36,720
‫solicitação-resposta, o aplicativo Express recebe uma solicitação quando alguém acessa um

15
00:00:36,720 --> 00:00:39,310
‫servidor para o qual criará um objeto

16
00:00:39,310 --> 00:00:41,170
‫de solicitação e resposta.

17
00:00:41,170 --> 00:00:43,530
‫Esses dados serão então usados

18
00:00:43,530 --> 00:00:48,160
‫e processados para gerar e enviar de volta uma resposta significativa.

19
00:00:48,160 --> 00:00:50,740
‫Agora, para processar esses dados,

20
00:00:50,740 --> 00:00:53,740
‫no Express usamos algo chamado middleware, que

21
00:00:53,740 --> 00:00:57,220
‫pode manipular a solicitação ou o objeto de resposta.

22
00:00:57,220 --> 00:01:00,680
‫Ou realmente execute qualquer outro código que quisermos.

23
00:01:00,680 --> 00:01:02,820
‫Portanto, o middleware nem sempre precisa

24
00:01:02,820 --> 00:01:05,230
‫ser apenas sobre a solicitação ou o objeto

25
00:01:05,230 --> 00:01:08,070
‫de resposta, mas geralmente é principalmente sobre a solicitação.

26
00:01:08,070 --> 00:01:10,880
‫E, na verdade, já usamos middleware antes.

27
00:01:10,880 --> 00:01:15,130
‫Usamos Express dot JSON para obter acesso ao corpo da solicitação no

28
00:01:15,130 --> 00:01:16,600
‫objeto da solicitação.

29
00:01:16,600 --> 00:01:18,250
‫Lembre-se disso?

30
00:01:18,250 --> 00:01:20,600
‫Agora é chamado de middleware, lembre-se

31
00:01:20,600 --> 00:01:23,930
‫porque é uma função que é executada no meio, ou

32
00:01:23,930 --> 00:01:26,570
‫seja, no meio do recebimento da solicitação

33
00:01:26,570 --> 00:01:28,540
‫e do envio da resposta.

34
00:01:28,540 --> 00:01:31,020
‫E na verdade, podemos dizer que no

35
00:01:31,020 --> 00:01:33,010
‫Express, tudo é middleware.

36
00:01:33,010 --> 00:01:35,270
‫Até mesmo nossas definições de rota.

37
00:01:35,270 --> 00:01:38,460
‫Então, novamente, mesmo quando definimos nossas rotas, podemos

38
00:01:38,460 --> 00:01:42,120
‫pensar nas funções do manipulador de rotas que escrevemos como

39
00:01:42,120 --> 00:01:43,600
‫funções de middleware.

40
00:01:43,600 --> 00:01:45,120
‫Eles são simplesmente funções

41
00:01:45,120 --> 00:01:48,010
‫de middleware que são executadas apenas para determinadas rotas.

42
00:01:48,010 --> 00:01:49,290
‫OK?

43
00:01:49,290 --> 00:01:52,840
‫Agora, alguns exemplos de middleware são Express dot JSON, que também

44
00:01:52,840 --> 00:01:54,860
‫é chamado de analisador de corpo,

45
00:01:54,860 --> 00:01:56,870
‫e que já usamos antes.

46
00:01:56,870 --> 00:01:59,100
‫Ou alguma funcionalidade de registro

47
00:01:59,100 --> 00:02:02,130
‫ou configuração de alguns cabeçalhos http específicos.

48
00:02:02,130 --> 00:02:05,760
‫As possibilidades são infinitas com middleware.

49
00:02:05,760 --> 00:02:08,460
‫Tudo bem, e agora em termos mais

50
00:02:08,460 --> 00:02:11,000
‫técnicos, dizemos que todo o middleware

51
00:02:11,000 --> 00:02:12,370
‫que usamos em

52
00:02:12,370 --> 00:02:15,200
‫nosso aplicativo é chamado de pilha de middleware.

53
00:02:15,200 --> 00:02:17,720
‫O que é muito importante ter em mente

54
00:02:17,720 --> 00:02:20,230
‫aqui é que a ordem do middleware na

55
00:02:20,230 --> 00:02:22,540
‫pilha é realmente definida pela ordem em

56
00:02:22,540 --> 00:02:24,500
‫que são definidos no código.

57
00:02:24,500 --> 00:02:27,110
‫Portanto, um middleware que aparece primeiro no

58
00:02:27,110 --> 00:02:29,920
‫código é executado antes do que aparece depois.

59
00:02:29,920 --> 00:02:33,170
‫Portanto, a ordem do código é muito importante no Express.

60
00:02:33,170 --> 00:02:34,360
‫OK?

61
00:02:34,360 --> 00:02:38,010
‫Agora, você pode pensar em todo o processo assim,

62
00:02:38,010 --> 00:02:40,120
‫nosso objeto de solicitação e

63
00:02:40,120 --> 00:02:41,890
‫resposta que foi criado

64
00:02:41,890 --> 00:02:45,310
‫no início passa por cada middleware onde são processados

65
00:02:45,310 --> 00:02:48,710
‫ou onde apenas algum outro código é executado.

66
00:02:48,710 --> 00:02:51,370
‫Então, ao final de cada função de middleware, uma

67
00:02:51,370 --> 00:02:53,150
‫próxima função é chamada, que é

68
00:02:53,150 --> 00:02:55,340
‫uma função à qual temos acesso em

69
00:02:55,340 --> 00:02:56,860
‫cada função de middleware.

70
00:02:56,860 --> 00:02:59,580
‫Assim como os objetos de solicitação e resposta.

71
00:02:59,580 --> 00:03:02,960
‫E é claro que veremos isso em código no próximo vídeo.

72
00:03:02,960 --> 00:03:05,375
‫Portanto, quando chamamos a próxima

73
00:03:05,375 --> 00:03:08,470
‫função, o próximo middleware na pilha será executado

74
00:03:08,470 --> 00:03:11,960
‫exatamente com o mesmo objeto de solicitação e resposta.

75
00:03:11,960 --> 00:03:14,480
‫E isso acontece com todos os middlewares

76
00:03:14,480 --> 00:03:16,460
‫até chegarmos ao último.

77
00:03:16,460 --> 00:03:17,830
‫E assim,

78
00:03:17,830 --> 00:03:20,360
‫o objeto inicial de solicitação e

79
00:03:20,360 --> 00:03:23,400
‫resposta passa por cada middleware passo a passo.

80
00:03:23,400 --> 00:03:25,490
‫E você pode pensar em

81
00:03:25,490 --> 00:03:29,190
‫todo esse processo como uma espécie de pipeline por onde nossos

82
00:03:29,190 --> 00:03:33,440
‫dados passam, da mesma forma que foram canalizados da solicitação à resposta final.

83
00:03:33,440 --> 00:03:34,472
‫Tudo bem?

84
00:03:34,472 --> 00:03:36,900
‫Agora, sobre a última função de middleware,

85
00:03:36,900 --> 00:03:40,230
‫geralmente é um manipulador de rota exatamente como codificamos antes.

86
00:03:40,230 --> 00:03:43,250
‫Portanto, neste manipulador, não chamamos a próxima função para

87
00:03:43,250 --> 00:03:45,270
‫mover para o próximo middleware.

88
00:03:45,270 --> 00:03:47,950
‫Em vez disso, finalmente enviamos os dados de

89
00:03:47,950 --> 00:03:49,800
‫resposta de volta ao cliente.

90
00:03:49,800 --> 00:03:50,633
‫E

91
00:03:50,633 --> 00:03:53,983
‫assim terminamos o chamado ciclo pedido-resposta.

92
00:03:55,380 --> 00:03:58,590
‫Portanto, o ciclo de solicitação-resposta é realmente tudo

93
00:03:58,590 --> 00:04:00,900
‫o que falamos aqui juntos.

94
00:04:00,900 --> 00:04:03,040
‫Ele começa com a solicitação de entrada

95
00:04:03,040 --> 00:04:05,980
‫e, em seguida, executa todo o middleware na pilha de

96
00:04:05,980 --> 00:04:07,240
‫middleware passo a

97
00:04:07,240 --> 00:04:10,513
‫passo e, por fim, envia a resposta para encerrar o ciclo.

98
00:04:11,370 --> 00:04:13,900
‫Então você vê, realmente não é complicado.

99
00:04:13,900 --> 00:04:16,450
‫Na verdade, é apenas um processo linear.

100
00:04:16,450 --> 00:04:19,200
‫Mas eu gostaria que alguém tivesse me mostrado

101
00:04:19,200 --> 00:04:22,000
‫algo assim quando eu estava aprendendo a construir aplicativos Express.

102
00:04:22,000 --> 00:04:23,420
‫Quer dizer, eu

103
00:04:23,420 --> 00:04:26,090
‫poderia construí-los, mas no início eu realmente

104
00:04:26,090 --> 00:04:29,230
‫não entendia todo esse ciclo de solicitação-resposta como este.

105
00:04:29,230 --> 00:04:30,760
‫Foi muito confuso.

106
00:04:30,760 --> 00:04:33,280
‫É por isso que estou mostrando isso,

107
00:04:33,280 --> 00:04:36,710
‫porque acredito que será muito, muito mais fácil para

108
00:04:36,710 --> 00:04:38,800
‫você entrar no curso

109
00:04:38,800 --> 00:04:42,383
‫agora, depois de entender exatamente como funcionam os aplicativos Express.

