1
00:00:00,000 --> 00:00:04,614
[MÚSICA]

2
00:00:04,614 --> 00:00:10,618
Agora que temos uma compreensão dos módulos de nó, vamos fazer nosso primeiro exercício

3
00:00:10,618 --> 00:00:17,080
para aprofundar nossa compreensão dos módulos de nó com um exemplo neste exercício.

4
00:00:17,080 --> 00:00:22,730
Então, para começar, vamos para um local conveniente em nosso computador.

5
00:00:22,730 --> 00:00:25,600
Então aqui, eu estou em meus documentos pasta Coursera,

6
00:00:25,600 --> 00:00:30,740
onde eu tenho os arquivos de todos os cursos anteriores.

7
00:00:30,740 --> 00:00:35,680
Então eu vou criar uma nova pasta aqui, chamada NodeJS e

8
00:00:35,680 --> 00:00:42,020
esta pasta é onde eu vou armazenar todo o código relacionado ao curso NodeJS.

9
00:00:42,020 --> 00:00:44,370
Então, indo para a pasta NodeJS,

10
00:00:44,370 --> 00:00:48,845
vamos criar uma subpasta aqui, chamada node-examples.

11
00:00:53,410 --> 00:00:54,590
E nesta pasta,

12
00:00:54,590 --> 00:01:00,470
vamos criar os arquivos relacionados a este exercício.

13
00:01:01,880 --> 00:01:07,018
Abra uma janela de terminal ou uma janela de comando e, em

14
00:01:07,018 --> 00:01:13,442
seguida, navegue para a pasta de exemplos de nó no prompt

15
00:01:13,442 --> 00:01:17,681
e, em seguida, no prompt, digite npm init para

16
00:01:17,681 --> 00:01:22,837
inicializar esta pasta como um aplicativo de nó.

17
00:01:22,837 --> 00:01:27,757
Então digite npm init e, em seguida, ele irá surgir com alguns

18
00:01:27,757 --> 00:01:33,050
valores padrão para algumas informações que

19
00:01:33,050 --> 00:01:38,120
vai armazenar em um arquivo chamado package.json.

20
00:01:38,120 --> 00:01:45,251
Então, para o nome, vamos digitar node-examples,

21
00:01:45,251 --> 00:01:52,383
e versão é 1.1.0, e descrição,

22
00:01:52,383 --> 00:01:58,639
vou simplesmente digitar Simple Node Examples.

23
00:02:00,565 --> 00:02:05,200
E o ponto de entrada é o valor padrão index.js.

24
00:02:05,200 --> 00:02:09,210
Para o comando test basta deixá-lo como tal e o repositório Git para o momento,

25
00:02:09,210 --> 00:02:10,890
vamos deixá-lo como tal.

26
00:02:10,890 --> 00:02:14,790
E para o autor, basta preencher o seu nome.

27
00:02:17,430 --> 00:02:22,610
E o resto, e então npm init mostrará

28
00:02:22,610 --> 00:02:27,510
o valor padrão que ele irá configurar no arquivo package.json.

29
00:02:27,510 --> 00:02:31,960
Então, como aprendemos, o arquivo package.json é o arquivo de manifesto para

30
00:02:31,960 --> 00:02:36,210
um aplicativo de nó, e uma vez que você concluir isso, você notará que

31
00:02:36,210 --> 00:02:41,500
o arquivo package.json é criado nessa pasta node-examples.

32
00:02:41,500 --> 00:02:46,980
Vamos abrir este projeto em um editor de nossa escolha.

33
00:02:46,980 --> 00:02:53,350
Então eu vou abrir meu código do Visual Studio nesta pasta.

34
00:02:53,350 --> 00:02:58,600
Quando meu código do Visual Studio, ele é aberto nessa pasta.

35
00:02:58,600 --> 00:03:05,100
Eu vou para os scripts aqui e configurar um script aqui dizendo “iniciar”

36
00:03:06,500 --> 00:03:10,599
e eu vou dizer “índice de nó”.

37
00:03:11,830 --> 00:03:16,460
E, em seguida, salve as alterações no arquivo package.json.

38
00:03:16,460 --> 00:03:22,595
Em seguida, eu vou criar uma pasta aqui e nomeá-lo como index.js e

39
00:03:22,595 --> 00:03:28,267
como você percebeu que principal aqui é dado como arquivo index.js, de

40
00:03:28,267 --> 00:03:33,470
modo que o arquivo inicial para o meu aplicativo nó.

41
00:03:33,470 --> 00:03:38,600
Então, no arquivo index.js, eu vou criar um exemplo simples

42
00:03:38,600 --> 00:03:43,760
para ilustrar vários recursos do nó e como vamos construir módulos de nó.

43
00:03:43,760 --> 00:03:49,410
Então aqui, vamos construir um exemplo que avalie a área e

44
00:03:49,410 --> 00:03:51,960
o perímetro de um retângulo.

45
00:03:51,960 --> 00:03:56,280
Um exemplo muito simples que nos ajuda a ilustrar

46
00:03:56,280 --> 00:03:59,480
vários aspectos sobre nós e nós módulos.

47
00:03:59,480 --> 00:04:05,336
Então, o tipo de começar, Var rect.

48
00:04:05,336 --> 00:04:10,787
E nós vamos criar um objeto JavaScript aqui,

49
00:04:10,787 --> 00:04:17,930
que é duas propriedades, perímetro, que é uma função.

50
00:04:17,930 --> 00:04:26,040
E como você vê, eu estou usando a função seta para definir esta função aqui.

51
00:04:26,040 --> 00:04:32,100
Então nó em sua versão atual suporta ES 6 ou ES 2015.

52
00:04:32,100 --> 00:04:36,251
E é por isso que eu vou usar o suporte à função de seta

53
00:04:36,251 --> 00:04:41,210
que está disponível no ES 2015 para definir esta função aqui.

54
00:04:41,210 --> 00:04:46,720
E se você fez os cursos anteriores onde usamos saia do tempo,

55
00:04:46,720 --> 00:04:48,800
isso seria bastante familiar para você.

56
00:04:50,340 --> 00:04:57,560
Agora com nó, temos a opção de usar JavaScript ou Typescript.

57
00:04:57,560 --> 00:05:02,350
Agora a documentação para o nó e

58
00:05:02,350 --> 00:05:07,865
também expressar que veremos mais tarde, todos usam JavaScript padrão.

59
00:05:07,865 --> 00:05:13,465
Então, eu tenho como padrão usar JavaScript padrão neste curso ou

60
00:05:13,465 --> 00:05:16,505
JavaScript ES2015 neste curso.

61
00:05:16,505 --> 00:05:18,585
Se você preferir usar TypeScript,

62
00:05:18,585 --> 00:05:24,620
você pode configurar seus exemplos de nó para escrever seu aplicativo em TypeScript.

63
00:05:24,620 --> 00:05:28,740
Mas então você terá que transpile esse código em JavaScript para

64
00:05:28,740 --> 00:05:31,090
que ele possa ser executado usando Node.

65
00:05:31,090 --> 00:05:34,150
Então você tem que configurar infra-estrutura adicional

66
00:05:34,150 --> 00:05:36,640
para ser capaz de usar TypeScript.

67
00:05:36,640 --> 00:05:40,630
Neste curso, vou usar JavaScript como a linguagem padrão para

68
00:05:40,630 --> 00:05:41,960
o resto do curso.

69
00:05:41,960 --> 00:05:46,790
E eu não vou entrar em Typescript usá-lo neste curso

70
00:05:46,790 --> 00:05:51,210
quando os nós começarem a suportar Typescript nativamente,

71
00:05:51,210 --> 00:05:55,220
então faz mais sentido mover para Typescript [INAUDIBLE].

72
00:05:55,220 --> 00:05:57,550
Mas se você está interessado em Typescript,

73
00:05:57,550 --> 00:06:01,770
Notei que houve vários artigos de blog postados por

74
00:06:01,770 --> 00:06:07,400
pessoas diferentes que ilustram como você pode configurar seu aplicativo Node para usar Typescript.

75
00:06:07,400 --> 00:06:11,420
Dito isso, vamos retornar ao arquivo index.js e

76
00:06:11,420 --> 00:06:13,030
depois continuar com nosso exemplo.

77
00:06:13,030 --> 00:06:20,340
Então eu estou montando um perímetro aqui e, em seguida, também uma função de área aqui.

78
00:06:20,340 --> 00:06:22,460
Novamente, tomando dois valores, x e y,

79
00:06:22,460 --> 00:06:26,650
que representam o comprimento e a largura do retângulo.

80
00:06:26,650 --> 00:06:31,830
Os dois parâmetros, e a área é computada como x vezes y.

81
00:06:31,830 --> 00:06:36,150
Então, a partir de sua matemática da escola primária,

82
00:06:36,150 --> 00:06:40,670
você sabe como calcular o perímetro e a área do retângulo.

83
00:06:40,670 --> 00:06:45,120
Então aqui, eu configurou este objeto JavaScript aqui e

84
00:06:45,120 --> 00:06:50,690
então deixe-me definir uma função aqui chamada SolveRect,

85
00:06:50,690 --> 00:06:54,166
que leva dois valores, (l,

86
00:06:54,166 --> 00:06:58,180
b), como os dois parâmetros, o comprimento e o ancoradouro do retângulo.

87
00:06:58,180 --> 00:07:03,409
E ele vai usar este objeto JavaScript que eu defini

88
00:07:03,409 --> 00:07:09,750
anteriormente, a fim de calcular o perímetro e a área do retângulo.

89
00:07:09,750 --> 00:07:12,762
Então, aqui dentro,

90
00:07:12,762 --> 00:07:17,710
deixe-me fazer um console.log e

91
00:07:17,710 --> 00:07:25,035
dizer Resolvendo para retângulo com l igual a

92
00:07:28,483 --> 00:07:30,827
Isto é apenas para a nossa conveniência.

93
00:07:40,010 --> 00:07:45,335
Então isso irá imprimir esta informação no terminal lá e

94
00:07:45,335 --> 00:07:50,944
assim neste console.log, eu estou apenas imprimindo os valores l e b, de modo

95
00:07:50,944 --> 00:07:58,130
que eu sei para o retângulo para o qual estamos calculando o comprimento e a largura.

96
00:07:58,130 --> 00:08:03,118
Agora, vou verificar se o comprimento e

97
00:08:03,118 --> 00:08:07,870
a largura não são inferiores ou iguais a zero.

98
00:08:07,870 --> 00:08:13,340
Se eles são menores ou iguais a zero, então não faz sentido calcular

99
00:08:13,340 --> 00:08:19,790
o perímetro e a área para o retângulo.

100
00:08:19,790 --> 00:08:27,957
Então eu vou dizer console.log aqui,

101
00:08:27,957 --> 00:08:33,790
então eu diria que

102
00:08:33,790 --> 00:08:39,040
as dimensões do retângulo devem ser

103
00:08:39,040 --> 00:08:44,008
maiores que zero.

104
00:08:58,175 --> 00:09:04,030
Dessa forma, imprimimos esses valores na tela se o comprimento e

105
00:09:04,030 --> 00:09:07,640
a largura forem menores ou iguais a zero.

106
00:09:07,640 --> 00:09:11,533
Caso contrário, é claro, faz sentido calcular o perímetro e

107
00:09:11,533 --> 00:09:13,370
a área do retângulo.

108
00:09:13,370 --> 00:09:16,944
Então, vamos dizer mais

109
00:09:16,944 --> 00:09:22,428
console.log (“A área

110
00:09:22,428 --> 00:09:27,679
do retângulo é”).

111
00:09:55,345 --> 00:09:57,416
Da mesma forma, calcularemos

112
00:10:10,161 --> 00:10:12,217
o perímetro do retângulo.

113
00:10:21,787 --> 00:10:22,562
Aqui.

114
00:10:24,130 --> 00:10:27,602
Então, dentro desta função, estamos calculando

115
00:10:27,602 --> 00:10:31,210
a área e o perímetro do retângulo e eliminando-o.

116
00:10:31,210 --> 00:10:36,058
Agora, obviamente precisamos chamar essa função usando valores diferentes para

117
00:10:36,058 --> 00:10:39,230
comprimento e largura e ver o que ela imprime.

118
00:10:39,230 --> 00:10:45,196
Então, logo abaixo aqui, eu vou dizer SolveRect e

119
00:10:45,196 --> 00:10:48,150
, em seguida, apenas usar alguns valores aqui.

120
00:10:48,150 --> 00:10:54,533
Então eu vou dizer 2, 4, E 3, 5.

121
00:10:58,375 --> 00:11:04,771
E vamos dizer 0, 5 e ver o que acontece.

122
00:11:04,771 --> 00:11:11,957
E -3, 5.

123
00:11:11,957 --> 00:11:16,099
Então, quatro opções diferentes de parâmetros aqui para

124
00:11:16,099 --> 00:11:21,130
ilustrar como esse aplicativo vai funcionar.

125
00:11:21,130 --> 00:11:24,640
Então, com isso, vamos salvar as alterações.

126
00:11:24,640 --> 00:11:30,590
Agora voltando para o terminal, no prompt, digite npm start e

127
00:11:30,590 --> 00:11:36,530
você veria que ele imprime a área do perímetro para

128
00:11:36,530 --> 00:11:39,980
os diferentes retângulos que especificamos lá.

129
00:11:39,980 --> 00:11:44,000
Então estamos dizendo que a resolução para o retângulo com l é igual a dois e

130
00:11:44,000 --> 00:11:48,890
b é igual a quatro, e a área do perímetro para este retângulo.

131
00:11:48,890 --> 00:11:53,190
E para o segundo, e para o terceiro, como você vê, suas

132
00:11:54,380 --> 00:11:58,870
dimensões devem ser maiores que zero e para

133
00:11:58,870 --> 00:12:02,450
o quarto também, ele está imprimindo o mesmo valor.

134
00:12:02,450 --> 00:12:07,010
Agora, obviamente, eu notei que eu precisaria de um espaço lá, então eu vou apenas corrigir

135
00:12:07,010 --> 00:12:12,731
o código para adicionar esse espaço extra lá.

136
00:12:12,731 --> 00:12:18,540
Então, com isso, vimos como podemos escrever um aplicativo de nó simples

137
00:12:18,540 --> 00:12:24,260
para calcular o perímetro e a área de um retângulo.

138
00:12:24,260 --> 00:12:27,780
Agora, obviamente, você quer ser capaz de configurar um repositório Git,

139
00:12:27,780 --> 00:12:31,930
onde você pode armazenar todo esse código.

140
00:12:31,930 --> 00:12:39,110
Então, no prompt digite git init para inicializar o repositório Git e

141
00:12:39,110 --> 00:12:45,195
, em seguida, você pode verificar o status do repositório Git e

142
00:12:45,195 --> 00:12:48,655
você percebe que dois arquivos foram recém-criados.

143
00:12:48,655 --> 00:12:52,651
Então vamos adicionar os dois arquivos ao nosso repositório Git, e

144
00:12:52,651 --> 00:12:56,535
neste ponto,

145
00:12:56,535 --> 00:13:00,505
verificando o status do git, você verá que os dois arquivos foram verificados.

146
00:13:00,505 --> 00:13:06,611
Então vamos fazer um git commit quebrar

147
00:13:06,611 --> 00:13:13,710
a mensagem Simple Node Exemplo.

148
00:13:13,710 --> 00:13:18,970
Na segunda parte deste exercício, vamos agora

149
00:13:20,130 --> 00:13:24,330
criar um módulo de nó neste exemplo.

150
00:13:24,330 --> 00:13:29,191
Então, no editor, no editor,

151
00:13:29,191 --> 00:13:34,610
crie um arquivo chamado rectangle.js.

152
00:13:34,610 --> 00:13:38,130
E dentro deste arquivo, vamos criar um módulo de nó.

153
00:13:38,130 --> 00:13:43,100
Então, vamos usar o

154
00:13:43,100 --> 00:13:47,892
objeto export, a fim de exportar os dois

155
00:13:47,892 --> 00:13:52,517
valores a partir deste módulo nó.

156
00:13:52,517 --> 00:13:59,063
Como você aprendeu, cada arquivo em um aplicativo de nó se torna seu próprio módulo de nó.

157
00:13:59,063 --> 00:14:02,264
Então, a partir deste módulo de nó retangular,

158
00:14:02,264 --> 00:14:05,909
eu vou exportar dois valores, o perímetro,

159
00:14:09,841 --> 00:14:15,544
e a área.

160
00:14:15,544 --> 00:14:22,080
Agora eu estou indo para ir para o arquivo index.js e, em seguida, simplesmente copiar este valor.

161
00:14:24,610 --> 00:14:29,558
E isso é o que vamos usar como a exportação para

162
00:14:29,558 --> 00:14:33,820
o perímetro aqui e da mesma forma para

163
00:14:33,820 --> 00:14:38,495
a área eu vou apenas copiar isso

164
00:14:38,495 --> 00:14:44,340
do arquivo index js e, em seguida, usá-lo para a área.

165
00:14:44,340 --> 00:14:49,498
Então, agora, temos um módulo de nó simples pronto, que está exportando dois valores,

166
00:14:49,498 --> 00:14:53,222
o perímetro e a área deste arquivo rectangle.js.

167
00:14:53,222 --> 00:14:57,583
Então, como aprendemos na palestra, módulos de nó [INAUDIBLE],

168
00:14:57,583 --> 00:15:02,273
agora, uma vez que você cria um módulo de nó, você precisa inserir esse módulo de nó

169
00:15:02,273 --> 00:15:05,970
em outro arquivo onde você deseja fazer uso dele.

170
00:15:05,970 --> 00:15:09,771
Então, voltando para o arquivo index.js.

171
00:15:09,771 --> 00:15:17,372
Agora eu vou substituir essa coisa toda por require e

172
00:15:17,372 --> 00:15:22,870
eu noto que este módulo nó está na

173
00:15:22,870 --> 00:15:27,250
mesma pasta que o projeto atual.

174
00:15:27,250 --> 00:15:31,560
Então eu diria que precisa de retângulo e é isso.

175
00:15:31,560 --> 00:15:33,900
Por isso, as minhas alterações estão concluídas.

176
00:15:33,900 --> 00:15:39,550
Então este arquivo index.js particular vai importar o

177
00:15:39,550 --> 00:15:45,190
módulo de nó retângulo que acabamos de criar, e então fazer uso dele dentro do nosso código aqui.

178
00:15:45,190 --> 00:15:46,750
Então, vamos salvar as alterações e

179
00:15:46,750 --> 00:15:51,780
, em seguida, dar uma olhada em nosso aplicativo novamente, no prompt do terminal.

180
00:15:51,780 --> 00:15:56,160
Indo para o terminal, no prompt, digite npm start.

181
00:15:58,200 --> 00:16:02,100
Você vai notar que há

182
00:16:02,100 --> 00:16:07,310
versão modificada deste aplicativo produz exatamente os mesmos resultados que antes.

183
00:16:07,310 --> 00:16:12,229
Com isso, aprendemos sobre como você pode criar um

184
00:16:12,229 --> 00:16:14,699
módulo de nó simples em nossa aplicação.

185
00:16:14,699 --> 00:16:19,781
Agora verificando o status do git, você verá que você

186
00:16:19,781 --> 00:16:25,370
tem dois arquivos, um que foi modificado, outro que acabou de ser adicionado.

187
00:16:25,370 --> 00:16:30,050
Então vamos adicionar isso ao nosso repositório Git e,

188
00:16:30,050 --> 00:16:34,088
em seguida, fazer um git commit com a mensagem,

189
00:16:34,088 --> 00:16:40,360
Simple Node Module.

190
00:16:42,160 --> 00:16:47,823
E verifique o log git e

191
00:16:47,823 --> 00:16:52,455
você notará que temos dois commits que

192
00:16:52,455 --> 00:16:56,987
temos comprometido com o nosso repositório Git lá.

193
00:16:56,987 --> 00:16:59,468
Com isso, completamos este exercício.

194
00:16:59,468 --> 00:17:03,000
Neste exercício, vimos como podemos escrever um aplicativo de nó simples.

195
00:17:03,000 --> 00:17:06,612
E também como podemos escrever um módulo de nó simples e

196
00:17:06,612 --> 00:17:10,419
usá-lo com outro arquivo em nosso aplicativo de nó.

197
00:17:10,419 --> 00:17:16,469
[ MUSIC]