﻿1
00:00:01,090 --> 00:00:02,770
‫Instrutor: Então, o que

2
00:00:02,770 --> 00:00:05,210
‫eu queria mostrar a vocês neste último

3
00:00:05,210 --> 00:00:08,360
‫vídeo sobre o projeto é que podemos realmente criar nosso

4
00:00:08,360 --> 00:00:12,137
‫próprio módulo e exportar algo deles como, por exemplo, uma função.

5
00:00:12,137 --> 00:00:16,710
‫Em seguida, importe essa função para outro módulo e

6
00:00:16,710 --> 00:00:19,150
‫use essa função lá.

7
00:00:19,150 --> 00:00:22,653
‫Ok, é isso que faremos nesta palestra.

8
00:00:24,490 --> 00:00:26,680
‫Então, digamos que tivéssemos vários

9
00:00:26,680 --> 00:00:28,816
‫arquivos JavaScript diferentes nos

10
00:00:28,816 --> 00:00:32,613
‫quais usamos a função de substituição de modelo.

11
00:00:34,240 --> 00:00:37,710
‫Então, no momento, estamos apenas usando aqui no índice. js.

12
00:00:37,710 --> 00:00:41,240
‫Usamos duas vezes e é por isso que temos uma função,

13
00:00:41,240 --> 00:00:43,062
‫mas imagine se quiséssemos

14
00:00:43,062 --> 00:00:44,960
‫usar essa função em vários arquivos.

15
00:00:44,960 --> 00:00:48,930
‫Ok, então o que podemos fazer é criar um novo módulo e

16
00:00:48,930 --> 00:00:50,790
‫exportar essa função dele

17
00:00:50,790 --> 00:00:53,210
‫e, em seguida, importá-lo de volta aqui.

18
00:00:53,210 --> 00:00:55,330
‫Portanto, a primeira coisa que você

19
00:00:55,330 --> 00:00:56,900
‫precisa saber é

20
00:00:56,900 --> 00:01:01,420
‫que no Nodejs, na verdade, cada arquivo é tratado como um módulo.

21
00:01:01,420 --> 00:01:06,210
‫E assim este índice. js aqui na verdade também

22
00:01:06,210 --> 00:01:08,780
‫é um módulo, que neste caso

23
00:01:08,780 --> 00:01:11,663
‫importa outros módulos e principalmente esses três.

24
00:01:13,610 --> 00:01:16,090
‫Vamos agora criar uma nova pasta aqui,

25
00:01:16,090 --> 00:01:17,800
‫que chamarei de módulos

26
00:01:20,120 --> 00:01:21,105
‫e, em

27
00:01:21,105 --> 00:01:23,050
‫seguida, criarei um arquivo que

28
00:01:23,050 --> 00:01:26,707
‫será nosso módulo chamado replaceTemplate. js.

29
00:01:31,050 --> 00:01:34,793
‫Ok, então vamos pegar nossa função aqui.

30
00:01:37,220 --> 00:01:39,000
‫Na verdade, corte-o

31
00:01:40,730 --> 00:01:42,863
‫daqui e simplesmente cole-o aqui.

32
00:01:44,420 --> 00:01:48,560
‫Tudo bem, agora como exportamos realmente esta

33
00:01:48,560 --> 00:01:50,350
‫função deste módulo?

34
00:01:50,350 --> 00:01:53,110
‫Bem, existem diferentes maneiras de exportar algo

35
00:01:53,110 --> 00:01:54,166
‫de um

36
00:01:54,166 --> 00:01:56,040
‫módulo e falaremos a fundo

37
00:01:56,040 --> 00:01:59,013
‫sobre tudo isso em outra seção mais adiante.

38
00:01:59,013 --> 00:01:59,904
‫Mas, por enquanto,

39
00:01:59,904 --> 00:02:04,303
‫tudo o que vamos fazer é usar o módulo. exportar.

40
00:02:08,020 --> 00:02:09,000
‫Assim, em

41
00:02:09,000 --> 00:02:12,950
‫cada módulo, temos acesso a uma variável chamada módulo

42
00:02:12,950 --> 00:02:16,360
‫e nela podemos definir a propriedade de exportação.

43
00:02:16,360 --> 00:02:20,230
‫E então definimos o que queremos exportar.

44
00:02:20,230 --> 00:02:22,943
‫Neste caso, é apenas esta função.

45
00:02:24,130 --> 00:02:25,940
‫Então, vamos nos livrar

46
00:02:27,660 --> 00:02:28,940
‫desse nome

47
00:02:28,940 --> 00:02:33,940
‫e basicamente o que vamos atribuir a essa propriedade de exportação no

48
00:02:34,151 --> 00:02:36,423
‫módulo é simplesmente essa função anônima.

49
00:02:37,700 --> 00:02:39,050
‫Eu disse anônimo

50
00:02:39,050 --> 00:02:42,110
‫porque no momento essa função não tem nome.

51
00:02:42,110 --> 00:02:44,184
‫E, portanto, é apenas

52
00:02:44,184 --> 00:02:47,867
‫uma função anônima a ser atribuída a esta propriedade

53
00:02:47,867 --> 00:02:50,750
‫de exportação no objeto de módulo.

54
00:02:50,750 --> 00:02:53,500
‫Novamente, esse é um objeto ao

55
00:02:53,500 --> 00:02:56,820
‫qual temos acesso em cada um dos módulos Nodejs.

56
00:02:56,820 --> 00:02:58,250
‫E novamente, mais

57
00:02:58,250 --> 00:02:59,410
‫tarde você

58
00:02:59,410 --> 00:03:02,020
‫aprenderá como isso realmente acontece nos bastidores.

59
00:03:02,020 --> 00:03:02,853
‫Mas, por

60
00:03:02,853 --> 00:03:04,050
‫enquanto, vamos apenas usá-lo

61
00:03:04,050 --> 00:03:07,070
‫e não se preocupe em saber por que funciona assim.

62
00:03:07,070 --> 00:03:10,750
‫Portanto, isso exporta essa função do módulo.

63
00:03:10,750 --> 00:03:14,423
‫Vamos apenas indexar. js e importá-lo.

64
00:03:15,510 --> 00:03:19,410
‫E as importações geralmente sempre acontecem na parte superior do arquivo

65
00:03:19,410 --> 00:03:21,400
‫e após os módulos principais.

66
00:03:21,400 --> 00:03:23,100
‫Primeiro, temos os módulos

67
00:03:23,100 --> 00:03:25,462
‫principais e, em seguida, nossos próprios módulos.

68
00:03:25,462 --> 00:03:30,462
‫Vamos exigir e, em seguida, nosso próprio módulo, que

69
00:03:30,890 --> 00:03:32,640
‫é ponto ...

70
00:03:32,640 --> 00:03:34,534
‫E lembre-se que na

71
00:03:34,534 --> 00:03:39,534
‫função require, o ponto realmente significa a localização atual deste módulo.

72
00:03:39,725 --> 00:03:43,660
‫Portanto, lembre-se de quando falamos sobre a variável de nome

73
00:03:43,660 --> 00:03:48,330
‫dir aqui, que geralmente é aquela que aponta para a pasta do módulo.

74
00:03:48,330 --> 00:03:50,860
‫Mas, neste caso, na função require, lembre-se

75
00:03:50,860 --> 00:03:52,678
‫de que há uma

76
00:03:52,678 --> 00:03:55,567
‫exceção em que este ponto realmente aponta para

77
00:03:55,567 --> 00:03:57,740
‫o local onde este módulo está.

78
00:03:57,740 --> 00:03:58,660
‫E agora,

79
00:03:58,660 --> 00:04:00,960
‫essa é a pasta raiz aqui.

80
00:04:00,960 --> 00:04:04,410
‫Daqui vamos para os

81
00:04:05,660 --> 00:04:09,333
‫módulos e aí temos o replaceTemplate.

82
00:04:12,480 --> 00:04:13,313
‫E, novamente,

83
00:04:13,313 --> 00:04:15,220
‫assim como com os outros módulos,

84
00:04:15,220 --> 00:04:17,193
‫não precisamos do. js.

85
00:04:18,670 --> 00:04:22,700
‫Agora isso vai retornar o que exportamos aqui com

86
00:04:22,700 --> 00:04:24,929
‫o módulo. exportações.

87
00:04:24,929 --> 00:04:28,321
‫O que temos aqui, esse código, essa

88
00:04:28,321 --> 00:04:33,321
‫função, é o que será exportado dessa chamada de função require.

89
00:04:33,370 --> 00:04:35,620
‫E agora podemos salvar isso em qualquer variável

90
00:04:35,620 --> 00:04:37,870
‫e dar a ela o nome que quisermos.

91
00:04:37,870 --> 00:04:40,460
‫Assim, poderíamos simplesmente chamá-lo de X se

92
00:04:40,460 --> 00:04:42,850
‫quiséssemos ou realmente o que quiséssemos.

93
00:04:42,850 --> 00:04:45,960
‫Mas, em vez disso, estou apenas dando a ele este

94
00:04:45,960 --> 00:04:47,420
‫nome que já tínhamos

95
00:04:47,420 --> 00:04:50,670
‫aqui para que eu não precise alterar meu código aqui.

96
00:04:50,670 --> 00:04:53,770
‫Portanto, replaceTemplate é o nome que quero

97
00:04:53,770 --> 00:04:56,160
‫dar a essa variável que agora

98
00:04:56,160 --> 00:04:58,040
‫é essa função.

99
00:04:58,040 --> 00:04:59,580
‫E assim,

100
00:04:59,580 --> 00:05:01,900
‫exportamos algo de um módulo

101
00:05:01,900 --> 00:05:04,203
‫e importamos para outro.

102
00:05:05,689 --> 00:05:09,941
‫E agora, se reiniciarmos nosso servidor,

103
00:05:09,941 --> 00:05:13,900
‫tudo ainda deve estar funcionando.

104
00:05:13,900 --> 00:05:15,000
‫Mas, na verdade, não.

105
00:05:15,000 --> 00:05:18,300
‫Temos algum tipo de erro aqui.

106
00:05:18,300 --> 00:05:20,920
‫E diz que não consegue encontrar o módulo.

107
00:05:20,920 --> 00:05:23,630
‫E isso porque fui estúpido o suficiente para

108
00:05:23,630 --> 00:05:27,150
‫chamar essa pasta de módulos. js.

109
00:05:27,150 --> 00:05:28,600
‫Sinto muito por isso.

110
00:05:28,600 --> 00:05:29,611
‫É claro

111
00:05:29,611 --> 00:05:32,363
‫que este deve ser chamado apenas de módulos.

112
00:05:34,270 --> 00:05:37,350
‫E é por isso que não estava me dando o autocompletar aqui.

113
00:05:37,350 --> 00:05:39,194
‫Eu estava me perguntando por que isso acontecia.

114
00:05:39,194 --> 00:05:40,973
‫E agora sabemos.

115
00:05:42,100 --> 00:05:43,540
‫Se não funcionar

116
00:05:43,540 --> 00:05:45,119
‫para você, basta alterar o

117
00:05:45,119 --> 00:05:49,413
‫nome desta pasta aqui e então tudo deve corresponder e funcionar como deveria.

118
00:05:50,730 --> 00:05:55,730
‫Vamos recarregar e ainda substituirá tudo como deveria.

119
00:05:56,160 --> 00:05:57,716
‫O mesmo aqui, é claro.

120
00:05:57,716 --> 00:06:02,716
‫E então sim, agora terminamos com este projeto.

121
00:06:03,630 --> 00:06:06,380
‫Parabéns bem feito.

122
00:06:06,380 --> 00:06:09,974
‫Você está no caminho certo para aprender Nodejs.

123
00:06:09,974 --> 00:06:11,500
‫Agora, no restante da

124
00:06:11,500 --> 00:06:12,770
‫seção, falaremos um

125
00:06:12,770 --> 00:06:16,510
‫pouco sobre o gerenciador de pacotes de nós ou npm.

126
00:06:16,510 --> 00:06:18,380
‫E assim vamos continuar trabalhando um

127
00:06:18,380 --> 00:06:19,770
‫pouco com este

128
00:06:19,770 --> 00:06:21,786
‫projeto, mas sem realmente adicionar nenhuma funcionalidade.

129
00:06:21,786 --> 00:06:24,890
‫De qualquer forma, nos vemos no próximo vídeo

130
00:06:24,890 --> 00:06:27,973
‫onde começaremos a falar sobre npm.

