[MÚSICA]
Nesta lição, vamos aprender como escrever notificações simples.
Também aprenderemos sobre módulos Node e
como módulos Node nos permitem organizar nossos aplicativos em vários arquivos.
Nós também aprenderemos sobre os diferentes tipos de módulos Node e
como podemos importar módulos Node em nossos arquivos de nosso aplicativo Node e
fazer uso deles dentro de nossa aplicação.
Primeiro, vamos aprender sobre os módulos Node com um pouco mais de detalhes nesta palestra.
JavaScript, quando ele é projetado pela primeira vez,
foi concebido para ser uma linguagem de script para ser usado dentro do navegador.
Então, o pequeno reino dentro do qual deveria ser usado é o navegador.
Agora, como você entende a partir desta especialização, JavaScript foi
muito além de sua intenção original, e agora está sendo usado para escrever aplicativos.
Ambos para ser executado usando frameworks dentro do navegador, e
também para executar aplicativos no lado do servidor, como veremos neste curso. O
JavaScript originalmente nunca foi projetado com bibliotecas comuns.
Se você olhar para linguagens de programação padrão como C, C++, Java e assim por diante,
todas elas têm bibliotecas padrão que permitem que você acesse
o hardware subjacente.
Além disso, forneça uma forma estruturada de organizar o aplicativo em
vários arquivos e, em seguida, combiná-los juntos quando você cria um aplicativo.
JavaScript nunca teve qualquer suporte assim quando começou.
Porque, como entendemos, o JavaScript não foi projetado para
o propósito para o qual ele está sendo usado hoje.
Mas é claro,
as pessoas entenderam as dificuldades quando você precisa expandir JavaScript
além de um único arquivo que é usado como uma linguagem de script para o navegador.
Agora, se você tiver um aplicativo JavaScript muito grande,
torna-se complicado escrever todo o código em um único arquivo.
E obviamente você quer que os resultados sejam capazes de quebrar sua aplicação em
vários fatos.
Agora, ao contrário das linguagens de programação tradicionais, JavaScript nunca teve uma maneira
de distribuir o código em vários arquivos e, em seguida, combiná-los juntos.
Então é aqui que a API CommonJS veio para preencher essa
lacuna que preenche as necessidades de alguma aplicação comum.
E este formato CommonJS define um formato de módulo que pode ser usado para
dividir seu aplicativo JavaScript em vários arquivos.
E Node adota esse formato CommonJS para
organizar nosso aplicativo JavaScript em vários arquivos.
E dentro do JavaScript, com o formato CommonJS,
cada arquivo se torna seu próprio módulo Node.
Então vamos aprender um pouco mais sobre módulos Node no resto desta palestra.
Então, como eu acabei de mencionar,
cada arquivo em um aplicativo Node torna-se seu próprio módulo Node.
Portanto, o arquivo ou o arquivo JavaScript define o limite para um módulo Node.
Então, dentro desse arquivo, a especificação CommonJS
fornece uma variável chamada variável módulo que é um objeto JavaScript.
E isso lhe dá acesso à definição do módulo atual dentro de um arquivo.
E neste objeto de módulo, você tem a
propriedade module.exports que determina a exportação do módulo atual.
Então, quando você atribui algo à propriedade module.exports,
então isso se torna o valor exportado do módulo atual.
De modo que quando este módulo é importado para outro arquivo
do nosso aplicativo Node, em seguida, o que é exportado a partir deste módulo
torna-se disponível no segundo aplicativo.
Vamos olhar para um exemplo em breve.
Quando você precisa importar um módulo para outro módulo,
é aqui que a função require é usada para importar o módulo.
Então, como vamos notar em um curto espaço de tempo, a função require é usado
para importar um módulo Node que é definido em outro arquivo para o arquivo atual para
que ele possa ser usado dentro do nosso aplicativo nó.
Os módulos de nó podem ser de três categorias.
Temos módulos Node baseados em arquivo onde definimos o módulo Node dentro de um arquivo,
dentro da nossa aplicação e fazemos uso dele dentro da nossa aplicação.
Em seguida, temos módulos de núcleo que já fazem parte do Node.
Os designers de nó mantiveram esses módulos de núcleo intencionalmente pequeno para
que Node pode ser mantido pequeno.
E também fornecer funcionalidade suficiente para
que os designers de módulos externos possam adicionar em suas próprias
funcionalidades que podem ser aproveitadas quando desenvolvemos aplicativos Node.
Assim, os módulos principais incluem caminho, sistema de arquivos, OS, util e alguns outros.
Encontraremos alguns deles à medida que avançarmos neste curso.
Em seguida, temos módulos Node externos.
Estes são módulos de nó de terceiros que são desenvolvidos por desenvolvedores de nó e,
em seguida, disponibilizados através do ecossistema de nó.
Portanto, esses módulos de Node externos podem ser instalados dentro do nosso sistema usando NPM.
Tantas vezes você nos veria usando instalação NPM e
o nome do módulo Node e que será incluído dentro do
nosso aplicativo Node em uma pasta chamada pasta node_modules.
E vamos encontrar módulos de Node externos em uma lição posterior neste curso.
Como fazer uso de módulos Node?
Quando você precisa usar um módulo Node dentro de outro arquivo Node dentro de seu aplicativo,
em seguida, você usaria a função require.
Eu mencionei brevemente sobre a função require em um dos
slides anteriores lá.
A função require para módulos Node baseados em arquivo,
você especificará isso conforme necessário e,
em seguida, especifique o caminho para o arquivo que contém o módulo Node.
Então você diria require./, o nome do módulo se o arquivo existir
na pasta atual escrita que seu aplicativo Node existe.
Então isso especifica o caminho relativo para o arquivo a partir do local atual.
E também para o núcleo e módulos externos,
você normalmente os especificaria dizendo require e o nome do módulo.
Você especificaria explicitamente um caminho para ele.
Se for um módulo núcleo, ele já faz parte do Node e por
isso será incluído automaticamente.
Se for um módulo externo, em seguida, ele será instalado dentro
da pasta node_modules na pasta atual, ou se o Node não
encontrar o módulo externo dentro da pasta node_modules na pasta atual,
ele irá até a próxima pasta de nível superior procurando por esse módulo Node.
Ou a próxima pasta de nível superior e
até a hierarquia até localizar os módulos de nó que serão
então importados para ser usado dentro de seu aplicativo Node.
Se ele é incapaz de encontrar o módulo Node até a hierarquia,
então ele obviamente irá levantar um erro dizendo que o módulo Node está ausente.
Esta forma de organização é muito útil na forma como
a estrutura da aplicação Node é definida como vamos encontrar
mais na parte posterior deste curso.
Com esta introdução rápida aos módulos Node, vamos dar uma olhada em um exemplo
que faremos como parte do exercício que segue esta palestra.
Como aprendemos nesta palestra, o
limite de um módulo Node é definido pelo arquivo que contém o código aqui.
Então, aqui, eu tenho um exemplo de um módulo Node definido como rectangle.js.
E lá você pode ver que estou usando duas exportações aqui,
estou dizendo exportações.perímetro e exportações.area.
E você verá que aqui eu não estou usando module.export porque as
exportações em si também é uma versão abreviada do module.export.
Então, se você não quiser usar module.exports completamente, mas
em vez disso apenas deseja exportar, então esta é outra maneira de escrever
os itens que são exportados dos módulos Node atuais.
Então aqui estamos exportando duas funções, o perímetro e
a área do módulo de nó retângulo.
Agora, a fim de fazer uso deste módulo em outro arquivo,
então vamos dar uma olhada no arquivo index.js.
E a primeira linha neste arquivo você vai notar que ele diz
var rect = require e dentro de aspas,. /retângulo.
Então isso é especificar que o módulo retângulo vai ser importante aqui,
eu fiz uso de dentro deste arquivo particular da aplicação.
Então, é assim que definiríamos módulos de nó, e
este é um exemplo de um módulo de nó baseado em arquivo.
Encontraremos o núcleo e
os módulos de Node externos nas lições posteriores deste curso.
[ MUSIC]