1
00:00:03,920 --> 00:00:07,800
Agora, que aprendemos sobre o Express Generator,

2
00:00:07,800 --> 00:00:10,890
a ferramenta de andaimes para aplicações de especialistas,

3
00:00:10,890 --> 00:00:17,405
vamos instalar o Express Generator e, em seguida, criar uma nova aplicação Express.

4
00:00:17,405 --> 00:00:20,250
Criaremos a réplica exata

5
00:00:20,250 --> 00:00:25,850
do aplicativo Express REST API que implementamos no módulo anterior.

6
00:00:25,850 --> 00:00:30,025
Vamos realmente reutilizar os três roteadores,

7
00:00:30,025 --> 00:00:34,970
roteadores Express que implementamos no aplicativo Express anterior

8
00:00:34,970 --> 00:00:38,690
no aplicativo recém-gerado que vamos

9
00:00:38,690 --> 00:00:43,430
gerar usando o Express Generator neste exercício.

10
00:00:43,430 --> 00:00:48,680
Para começar, seu primeiro passo é instalar o Express Generator.

11
00:00:48,680 --> 00:00:52,610
Então, no prompt digite “npm

12
00:00:52,610 --> 00:00:59,210
install -g” para instalá-lo como um módulo NPM global.

13
00:00:59,210 --> 00:01:05,120
Vamos dizer “Gerador Expresso” e “Retornar”.

14
00:01:05,120 --> 00:01:10,910
Agora, se você estiver instalando em um OSX ou uma máquina Linux,

15
00:01:10,910 --> 00:01:14,400
certifique-se de usar sudo na frente deste comando.

16
00:01:14,400 --> 00:01:21,500
Em seguida, instale o aplicativo como um aplicativo global.

17
00:01:21,500 --> 00:01:29,850
Como você pode ver, a versão do Express Generator que estou usando é 4.16.0 neste curso.

18
00:01:29,850 --> 00:01:33,845
Agora, que instalamos o Express Generator, em seu terminal,

19
00:01:33,845 --> 00:01:37,590
mova para a pasta Node.Js onde você tem armazenado

20
00:01:37,590 --> 00:01:42,080
todos os vários aplicativos de nó que temos vindo a desenvolver neste curso,

21
00:01:42,080 --> 00:01:43,745
na pasta Node.Js.

22
00:01:43,745 --> 00:01:50,020
No prompt digite express ConfusionServer.

23
00:01:50,020 --> 00:01:53,865
Agora, se você tem seguido os cursos anteriores,

24
00:01:53,865 --> 00:01:57,410
você entende por que eu chamo de Confusão e então

25
00:01:57,410 --> 00:02:01,860
vamos andaime nossa aplicação expressa no ConfusionServer.

26
00:02:01,860 --> 00:02:07,165
Estou andaime para fora sem novas opções e, em seguida, dentro de um curto período de tempo,

27
00:02:07,165 --> 00:02:10,125
o servidor Express será andaime para fora.

28
00:02:10,125 --> 00:02:14,390
Agora, mova para a pasta ConfusionServer e, em seguida,

29
00:02:14,390 --> 00:02:18,680
você veria que um monte de arquivos já foram andaimes para você.

30
00:02:18,680 --> 00:02:23,645
Então, vamos abrir esse projeto no Visual Studio Code.

31
00:02:23,645 --> 00:02:28,935
Além disso, no prompt digite “npm

32
00:02:28,935 --> 00:02:33,110
install” para instalar todos os módulos NPM

33
00:02:33,110 --> 00:02:36,070
que já estão incluídos no arquivo package.json.

34
00:02:36,070 --> 00:02:39,590
Então, vamos dar uma olhada rápida no arquivo package.json para ver quais são

35
00:02:39,590 --> 00:02:44,360
todos os vários módulos NPM Node que vão ser instalados.

36
00:02:44,360 --> 00:02:46,200
Indo para

37
00:02:46,200 --> 00:02:48,175
o nosso aplicativo, no arquivo package.json,

38
00:02:48,175 --> 00:02:52,550
você vê que o servidor com o nome padrão

39
00:02:52,550 --> 00:02:57,200
foi andaime e você vê um monte de dependências que são declaradas aqui.

40
00:02:57,200 --> 00:03:02,390
Então, todos esses módulos NPM serão instalados automaticamente para

41
00:03:02,390 --> 00:03:08,970
você pelo NPM quando você digitar “npm install” nesta pasta.

42
00:03:08,970 --> 00:03:13,370
Então, você verá a pasta de módulos nó sendo criado aqui.

43
00:03:13,370 --> 00:03:17,600
Vá para o terminal, digite “npm install” e, em seguida, deixe-o

44
00:03:17,600 --> 00:03:22,320
prosseguir com a instalação de todos os vários módulos NPM.

45
00:03:22,320 --> 00:03:23,985
Uma vez que todos estejam concluídos,

46
00:03:23,985 --> 00:03:29,810
então estamos prontos para começar com a nossa aplicação Express.

47
00:03:29,810 --> 00:03:34,595
Você notaria que o aplicativo Express padrão já foi instalado.

48
00:03:34,595 --> 00:03:35,710
Então, no prompt,

49
00:03:35,710 --> 00:03:38,105
se você simplesmente dizer npm start,

50
00:03:38,105 --> 00:03:42,295
o aplicativo padrão será iniciado e você pode

51
00:03:42,295 --> 00:03:48,500
navegar usando seu navegador padrão para ver o que este aplicativo serve para cima.

52
00:03:48,500 --> 00:03:58,645
Vá para Postman no tipo de bloco de endereços localhost:3000 e

53
00:03:58,645 --> 00:04:03,185
envie a solicitação e você verá que seu servidor retornará

54
00:04:03,185 --> 00:04:12,045
essas informações padrão do site do servidor.

55
00:04:12,045 --> 00:04:20,075
Então, este é o servidor Express padrão que é andaimes pelo Express Generator.

56
00:04:20,075 --> 00:04:23,550
No console, você verá informações como esta impressas aqui.

57
00:04:23,550 --> 00:04:30,180
Isto é o que Morgan imprime na tela para mostrar os pedidos que chegam.

58
00:04:30,180 --> 00:04:34,955
Então, ele mostra o tipo de solicitação para qual URL

59
00:04:34,955 --> 00:04:40,820
e a resposta correspondente que foi enviada de volta para o cliente do servidor.

60
00:04:40,820 --> 00:04:45,050
Vamos parar o servidor Express.

61
00:04:45,050 --> 00:04:49,430
Vamos inicializar um repositório Git e, em seguida,

62
00:04:49,430 --> 00:04:57,360
vamos verificar o status do Git e você verá que os módulos do nó está sendo incluído.

63
00:04:57,360 --> 00:05:03,800
Então, deixe-me mudar para o meu aplicativo e, em seguida, criar

64
00:05:03,800 --> 00:05:10,895
um arquivo gitignore e, em seguida, no arquivo gitignore,

65
00:05:10,895 --> 00:05:17,470
deixe-me especificar os módulos de nó como um arquivo que eu quero ignorar.

66
00:05:17,470 --> 00:05:20,815
Em seguida, voltando para o terminal,

67
00:05:20,815 --> 00:05:25,090
deixe-me verificar o status do git e você vê que agora

68
00:05:25,090 --> 00:05:30,385
vamos estar verificando em apenas os arquivos que fazem parte de nossa aplicação.

69
00:05:30,385 --> 00:05:33,925
Então, no prompt, digite git add

70
00:05:33,925 --> 00:05:42,085
e, em seguida, diga, git status e você verá que todos os arquivos foram verificados.

71
00:05:42,085 --> 00:05:50,725
Então, você diz, git commit -m “Express Generator”.

72
00:05:50,725 --> 00:05:54,500
Agora, vamos continuar com esta aplicação Express.

73
00:05:54,500 --> 00:05:58,820
Nós já tínhamos construído os três roteadores usando

74
00:05:58,820 --> 00:06:04,505
o roteador Express no aplicativo Express anterior que implementamos.

75
00:06:04,505 --> 00:06:09,965
Vamos copiar esses três roteadores para este aplicativo que geramos usando o

76
00:06:09,965 --> 00:06:16,240
Express Generator e também configurar este aplicativo para fazer uso desses três roteadores.

77
00:06:16,240 --> 00:06:17,980
Então, para fazer isso,

78
00:06:17,980 --> 00:06:24,120
deixe-me ir para a pasta Node.Js e,

79
00:06:24,120 --> 00:06:27,670
em seguida,

80
00:06:27,670 --> 00:06:30,380
indo para a pasta express nó e rotas, eu vou copiar o dishRouter.js,

81
00:06:30,380 --> 00:06:34,460
leaderRouter.js router.js e promoRouter.js que eu implementei

82
00:06:34,460 --> 00:06:39,410
na atribuição e vamos para

83
00:06:39,410 --> 00:06:45,170
o ConfusionServer que eu acabaram de criar e para a pasta de rotas e, em seguida, copiar

84
00:06:45,170 --> 00:06:51,720
sobre esses três roteadores Express que criamos lá.

85
00:06:51,720 --> 00:06:58,140
Então, automaticamente, agora modificando o arquivo app.js,

86
00:06:58,140 --> 00:07:01,250
seremos capazes de suportar a API REST usando

87
00:07:01,250 --> 00:07:05,080
o aplicativo Express que acabamos de sair.

88
00:07:05,080 --> 00:07:09,535
Fazendo uma rápida visita ao aplicativo que foi andaime para fora.

89
00:07:09,535 --> 00:07:12,515
Como mencionei na palestra anterior,

90
00:07:12,515 --> 00:07:16,780
o app.js é o lugar onde tudo começa.

91
00:07:16,780 --> 00:07:20,540
Então, este é o arquivo padrão para que você possa ver algumas

92
00:07:20,540 --> 00:07:25,360
das coisas que você está familiarizado com a partir do módulo anterior.

93
00:07:25,360 --> 00:07:31,440
Então, estamos exigindo logger de caminho expresso que é morgan neste caso.

94
00:07:31,440 --> 00:07:35,570
CookieParser que vamos usar em um dos exercícios posteriores e você

95
00:07:35,570 --> 00:07:40,170
também vê que você está importando duas rotas;

96
00:07:40,170 --> 00:07:42,220
o índice e os usuários,

97
00:07:42,220 --> 00:07:45,225
que já estão andaimes para fora pelo Express para nós.

98
00:07:45,225 --> 00:07:51,300
Então, vamos adicionar os três novos roteadores aqui.

99
00:07:51,300 --> 00:08:00,734
Então, eu vou apenas dizer, var DisishRouter exigem rotas

100
00:08:00,734 --> 00:08:10,480
DishRouter e, em seguida, eles vão copiar isso e, em seguida, também importar

101
00:08:10,480 --> 00:08:24,470
o PromORouter

102
00:08:26,670 --> 00:08:32,315
e o LeaderRouter e vamos configurar estes para ser usado aqui.

103
00:08:32,315 --> 00:08:35,735
Aqui você vê que o índice é montado

104
00:08:35,735 --> 00:08:40,070
na barra e, em seguida, os usuários são montados em /users.

105
00:08:40,070 --> 00:08:43,160
Então, vamos dizer, uso do aplicativo

106
00:08:43,160 --> 00:08:52,970
e pratos DisishRouter.

107
00:08:52,970 --> 00:08:54,840
São quatro horas.

108
00:08:59,890 --> 00:09:17,910
Promoções PromOrouter e líderes.

109
00:09:18,030 --> 00:09:22,735
LeaderRouter. É isso.

110
00:09:22,735 --> 00:09:27,045
Nosso aplicativo Express que foi andaime para fora agora está configurado

111
00:09:27,045 --> 00:09:32,000
para ser um servidor de API REST completo que servirá para pratos,

112
00:09:32,000 --> 00:09:34,595
pratos, promoções e líderes.

113
00:09:34,595 --> 00:09:37,630
Agora, se você navegar pelo resto do código,

114
00:09:37,630 --> 00:09:41,175
ele vai parecer tudo familiarizado com algumas coisas novas lá dentro.

115
00:09:41,175 --> 00:09:47,290
Vamos visitá-los como e quando precisarmos entender um pouco mais de detalhes lá.

116
00:09:47,290 --> 00:09:50,655
Então, você pode ver que o servidor estático foi configurado,

117
00:09:50,655 --> 00:09:56,150
o logger foi configurado lá e alguns deste outro- então,

118
00:09:56,150 --> 00:10:02,315
este é um manipulador global para erros.

119
00:10:02,315 --> 00:10:06,150
Veremos como fazer uso dele com mais detalhes.

120
00:10:06,150 --> 00:10:10,855
E esses dois são manipuladores de erros adicionais que se seguem depois disso.

121
00:10:10,855 --> 00:10:16,635
Vamos ver como fazemos uso deles à medida que implementamos ainda mais nesta aplicação.

122
00:10:16,635 --> 00:10:19,325
Então, é aqui que você percebe toda essa informação.

123
00:10:19,325 --> 00:10:23,140
Agora, você está se perguntando onde o servidor em si está

124
00:10:23,140 --> 00:10:27,575
configurado para o host local e o número da porta está configurado.

125
00:10:27,575 --> 00:10:34,840
Agora, esta informação está neste arquivo chamado bin/www.

126
00:10:34,840 --> 00:10:38,075
Se você abrir a pasta bin/www,

127
00:10:38,075 --> 00:10:40,340
você verá informações adicionais aqui.

128
00:10:40,340 --> 00:10:44,340
Então, ele diz, var aplicativo exigem.. barra /aplicativo.

129
00:10:44,340 --> 00:10:46,330
Então, a partir da pasta bin,

130
00:10:46,330 --> 00:10:47,480
você vem aqui e, em seguida,

131
00:10:47,480 --> 00:10:50,805
este arquivo app.js é necessário aqui para isso;

132
00:10:50,805 --> 00:10:54,245
e assim, isso incluirá automaticamente o expresso e tudo mais.

133
00:10:54,245 --> 00:10:56,440
E então, aqui você está configurando

134
00:10:56,440 --> 00:11:00,510
o servidor http aqui e você está configurando o número da porta.

135
00:11:00,510 --> 00:11:04,570
Você também pode fornecer seu próprio número de porta na linha de comando,

136
00:11:04,570 --> 00:11:08,575
mas no momento vamos usar o valor padrão, que é 3000,

137
00:11:08,575 --> 00:11:11,830
e vamos configurar o número da porta aqui; e, em seguida,

138
00:11:11,830 --> 00:11:16,935
você vê o servidor var HTTP.CreateServer que você viu anteriormente,

139
00:11:16,935 --> 00:11:20,590
e o servidor está ouvindo As coisas aqui.

140
00:11:20,590 --> 00:11:28,050
E, em seguida, também, aqui estão alguns ouvindo eventos no lado do servidor.

141
00:11:28,050 --> 00:11:30,940
Voltaremos a isso em um dos exercícios posteriores.

142
00:11:30,940 --> 00:11:33,320
E, em seguida, abaixo, você verá algum

143
00:11:33,320 --> 00:11:36,560
código adicional que configura seu servidor para ser capaz de

144
00:11:36,560 --> 00:11:43,170
lidar com erros e ouvir solicitações recebidas no número da porta e assim por diante.

145
00:11:43,170 --> 00:11:46,080
No momento, não se preocupe muito com este código.

146
00:11:46,080 --> 00:11:48,730
Vamos revisitar este código sempre que

147
00:11:48,730 --> 00:11:55,580
precisarmos, e vamos modificar este código como e quando precisarmos em um dos exercícios posteriores.

148
00:11:55,580 --> 00:12:01,595
Então, é aí que as informações do servidor estão todas configuradas lá.

149
00:12:01,595 --> 00:12:06,070
E app.js, já vimos a pasta rotas lá.

150
00:12:06,070 --> 00:12:15,530
Index.js e users.js são duas rotas padrão que já estão configuradas para nós.

151
00:12:15,530 --> 00:12:19,575
Vamos usar o users.js em um dos exercícios posteriores.

152
00:12:19,575 --> 00:12:21,900
E na pasta pública,

153
00:12:21,900 --> 00:12:25,410
vamos em frente e copiar o index.html e

154
00:12:25,410 --> 00:12:31,345
aboutus.html do nosso aplicativo Express para a pasta pública também.

155
00:12:31,345 --> 00:12:39,895
Então, voltando para a pasta pública node-express.

156
00:12:39,895 --> 00:12:42,250
Só vou copiar estes dois.

157
00:12:42,250 --> 00:12:47,135
E então, vamos voltar para o servidor de confusão;

158
00:12:47,135 --> 00:12:49,840
e então, na pasta pública,

159
00:12:49,840 --> 00:12:52,410
eu vou simplesmente colá-los no lugar.

160
00:12:52,410 --> 00:12:54,355
No momento, estes são espaços reservados.

161
00:12:54,355 --> 00:12:57,960
Mais tarde, vamos substituí-los por outras coisas.

162
00:12:57,960 --> 00:13:00,240
Então, com essas alterações,

163
00:13:00,240 --> 00:13:04,385
nosso servidor está agora totalmente configurado para ser executado como

164
00:13:04,385 --> 00:13:09,235
um servidor de API REST e suportará todos os pontos finais da API REST.

165
00:13:09,235 --> 00:13:13,105
Então, vamos começar o nosso servidor.

166
00:13:13,105 --> 00:13:14,680
Então, no prompt,

167
00:13:14,680 --> 00:13:19,910
digite npm start e seu servidor estará ativo e em execução.

168
00:13:19,910 --> 00:13:24,555
Vamos para PostBin e enviar algumas solicitações para este servidor.

169
00:13:24,555 --> 00:13:29,545
Vamos agora enviar uma solicitação get para o host local 3000/pratos,

170
00:13:29,545 --> 00:13:36,210
e você notará que o REST API Server está funcionando exatamente como esperamos.

171
00:13:36,210 --> 00:13:41,250
Enviamos um pedido de exclusão e ele vai apagar os pratos.

172
00:13:41,250 --> 00:13:44,580
E então, vamos enviar

173
00:13:44,580 --> 00:13:49,800
uma solicitação de exclusão para promoções e você verá que ela funciona exatamente como antes.

174
00:13:49,800 --> 00:13:55,075
E fazemos uma postagem para promoções

175
00:13:55,075 --> 00:14:09,430
com o corpo fielding

176
00:14:23,730 --> 00:14:26,725
e enviamos a solicitação de postagem,

177
00:14:26,725 --> 00:14:28,750
e você verá que ele diz,

178
00:14:28,750 --> 00:14:31,790
“Vamos adicionar o teste de promoção com descrição detalhada.”

179
00:14:31,790 --> 00:14:38,425
Vamos enviar isso para leaders.23,

180
00:14:38,425 --> 00:14:45,190
mas colocar o pedido para leaders.23 e você deve ver que ele diz, “Atualizando o líder 23.

181
00:14:45,190 --> 00:14:47,655
Irá atualizar o líder.” Então, você vê que

182
00:14:47,655 --> 00:14:51,780
o gerador Express que gerou o aplicativo e nós o modificamos

183
00:14:51,780 --> 00:14:55,060
para suportar todos os pontos de extremidade da API REST que

184
00:14:55,060 --> 00:14:59,315
configuramos na versão anterior do roteador Express.

185
00:14:59,315 --> 00:15:05,020
Agora, com isso, concluímos este exercício onde demonstramos como podemos

186
00:15:05,020 --> 00:15:10,610
usar o gerador Express para construir o endpoint da API REST.

187
00:15:10,610 --> 00:15:17,740
Agora, este é um bom momento para nós fazer um Git Kermit das mudanças com a mensagem,

188
00:15:17,740 --> 00:15:21,110
“Express generator REST API.”