‫Instrutor: Então, o que
‫eu queria mostrar a vocês neste último
‫vídeo sobre o projeto é que podemos realmente criar nosso
‫próprio módulo e exportar algo deles como, por exemplo, uma função.
‫Em seguida, importe essa função para outro módulo e
‫use essa função lá.
‫Ok, é isso que faremos nesta palestra.
‫Então, digamos que tivéssemos vários
‫arquivos JavaScript diferentes nos
‫quais usamos a função de substituição de modelo.
‫Então, no momento, estamos apenas usando aqui no índice. js.
‫Usamos duas vezes e é por isso que temos uma função,
‫mas imagine se quiséssemos
‫usar essa função em vários arquivos.
‫Ok, então o que podemos fazer é criar um novo módulo e
‫exportar essa função dele
‫e, em seguida, importá-lo de volta aqui.
‫Portanto, a primeira coisa que você
‫precisa saber é
‫que no Nodejs, na verdade, cada arquivo é tratado como um módulo.
‫E assim este índice. js aqui na verdade também
‫é um módulo, que neste caso
‫importa outros módulos e principalmente esses três.
‫Vamos agora criar uma nova pasta aqui,
‫que chamarei de módulos
‫e, em
‫seguida, criarei um arquivo que
‫será nosso módulo chamado replaceTemplate. js.
‫Ok, então vamos pegar nossa função aqui.
‫Na verdade, corte-o
‫daqui e simplesmente cole-o aqui.
‫Tudo bem, agora como exportamos realmente esta
‫função deste módulo?
‫Bem, existem diferentes maneiras de exportar algo
‫de um
‫módulo e falaremos a fundo
‫sobre tudo isso em outra seção mais adiante.
‫Mas, por enquanto,
‫tudo o que vamos fazer é usar o módulo. exportar.
‫Assim, em
‫cada módulo, temos acesso a uma variável chamada módulo
‫e nela podemos definir a propriedade de exportação.
‫E então definimos o que queremos exportar.
‫Neste caso, é apenas esta função.
‫Então, vamos nos livrar
‫desse nome
‫e basicamente o que vamos atribuir a essa propriedade de exportação no
‫módulo é simplesmente essa função anônima.
‫Eu disse anônimo
‫porque no momento essa função não tem nome.
‫E, portanto, é apenas
‫uma função anônima a ser atribuída a esta propriedade
‫de exportação no objeto de módulo.
‫Novamente, esse é um objeto ao
‫qual temos acesso em cada um dos módulos Nodejs.
‫E novamente, mais
‫tarde você
‫aprenderá como isso realmente acontece nos bastidores.
‫Mas, por
‫enquanto, vamos apenas usá-lo
‫e não se preocupe em saber por que funciona assim.
‫Portanto, isso exporta essa função do módulo.
‫Vamos apenas indexar. js e importá-lo.
‫E as importações geralmente sempre acontecem na parte superior do arquivo
‫e após os módulos principais.
‫Primeiro, temos os módulos
‫principais e, em seguida, nossos próprios módulos.
‫Vamos exigir e, em seguida, nosso próprio módulo, que
‫é ponto ...
‫E lembre-se que na
‫função require, o ponto realmente significa a localização atual deste módulo.
‫Portanto, lembre-se de quando falamos sobre a variável de nome
‫dir aqui, que geralmente é aquela que aponta para a pasta do módulo.
‫Mas, neste caso, na função require, lembre-se
‫de que há uma
‫exceção em que este ponto realmente aponta para
‫o local onde este módulo está.
‫E agora,
‫essa é a pasta raiz aqui.
‫Daqui vamos para os
‫módulos e aí temos o replaceTemplate.
‫E, novamente,
‫assim como com os outros módulos,
‫não precisamos do. js.
‫Agora isso vai retornar o que exportamos aqui com
‫o módulo. exportações.
‫O que temos aqui, esse código, essa
‫função, é o que será exportado dessa chamada de função require.
‫E agora podemos salvar isso em qualquer variável
‫e dar a ela o nome que quisermos.
‫Assim, poderíamos simplesmente chamá-lo de X se
‫quiséssemos ou realmente o que quiséssemos.
‫Mas, em vez disso, estou apenas dando a ele este
‫nome que já tínhamos
‫aqui para que eu não precise alterar meu código aqui.
‫Portanto, replaceTemplate é o nome que quero
‫dar a essa variável que agora
‫é essa função.
‫E assim,
‫exportamos algo de um módulo
‫e importamos para outro.
‫E agora, se reiniciarmos nosso servidor,
‫tudo ainda deve estar funcionando.
‫Mas, na verdade, não.
‫Temos algum tipo de erro aqui.
‫E diz que não consegue encontrar o módulo.
‫E isso porque fui estúpido o suficiente para
‫chamar essa pasta de módulos. js.
‫Sinto muito por isso.
‫É claro
‫que este deve ser chamado apenas de módulos.
‫E é por isso que não estava me dando o autocompletar aqui.
‫Eu estava me perguntando por que isso acontecia.
‫E agora sabemos.
‫Se não funcionar
‫para você, basta alterar o
‫nome desta pasta aqui e então tudo deve corresponder e funcionar como deveria.
‫Vamos recarregar e ainda substituirá tudo como deveria.
‫O mesmo aqui, é claro.
‫E então sim, agora terminamos com este projeto.
‫Parabéns bem feito.
‫Você está no caminho certo para aprender Nodejs.
‫Agora, no restante da
‫seção, falaremos um
‫pouco sobre o gerenciador de pacotes de nós ou npm.
‫E assim vamos continuar trabalhando um
‫pouco com este
‫projeto, mas sem realmente adicionar nenhuma funcionalidade.
‫De qualquer forma, nos vemos no próximo vídeo
‫onde começaremos a falar sobre npm.