Escolar Documentos
Profissional Documentos
Cultura Documentos
Parte I
O que vamos fazer ao longo do curso
• Vamos falar sobre Node.js/Express, mongoDB e Angular;
• Prototipação e Debugging
– A estrutura do dado enviado e semelhante no cliente, no servidor
e no banco, o que reduz drasticamente o tempo com conversões.
• Performance
– Há a possibilidade de processar totalmente ou parcialmente
dados e lógica no cliente, onerando menos o servidor.
– Para verificar:
• Win: no CMD digite “node –v”
• Visual Studio Code: no terminal digite “./node –v”
Preparando o Projeto
• O que precisamos fazer
inicialmente:
– Descompactar como base o “seed-
project - BASE.zip”, que está
preparado para usar as
dependências e possui uma
estruturação básica de projeto.
node_modules
• Armazena os arquivos de todas dependências
(é a biblioteca incorporada)
• É gerenciada por nós a medida que vamos
instalando novos recursos no projeto
• Não precisamos mexer aqui...
DICA:
- assets armazena diretórios do cliente (“front-end”)
- Todos os outros são diretórios do lado do servidor
(“back-end”)
Entendendo a Estrutura do Projeto
assets / app
• Armazena a aplicação app feita em Angular
• Os arquivos apresentados fazem parte da
estrutura de uma aplicação em angular
• Aqui temos o nosso “lado do cliente” ou seja,
a nossa aplicação front-end
Rapidamente....
• Aplicações Angular são construídas com
componentes
• Aqui temos o componentes da aplicação app
Rapidamente....
• Setamos qual o código HTML que será
renderizado quando “invocamos” esse
componente
Entendendo a Estrutura do Projeto
bin
• Armazena o servidor Node.js
• Aqui realizamos a configuração do servidor
• A configuração é feita no arquivo www
Rapidamente....
• Setamos o porto, iniciamos o servidor, etc
• Mais para frente vamos ver como a requisição
chega até a aplicação app
Entendendo a Estrutura do Projeto
public
• Armazena o diretório que contém a aplicação
app desenvolvida
• Seria como o local onde fazemos o “deploy” da
aplicação para poder ser invocada pelo
browser
• O bundle.js é “criado automaticamente” não
precisa mexer em nada neste diretório
• Também armazena os CSS utilizados
Rapidamente....
• No diretório assets nós criamos a aplicação
• No diretório public nós disponibilizamos para
o servidor
Entendendo a Estrutura do Projeto
routes
• Armazena as rotas do servidor para a
aplicação app
Rapidamente....
• Aqui temos apenas uma rota registrada no
servidor
• Se chegar em “/” (que significa localhost/)
renderiza o “index”
• O “index” se encontra no diretório “views”
do servidor
Entendendo a Estrutura do Projeto
views
• Armazena um “template engine” usado pelo
servidor para carregar a app
• O arquivo “index.hbs” contém a aplicação app
que vai ser “inicializada”
Rapidamente....
• Está usando Handlebars como “template
engine”, por isso o arquivo tem a extensão
“.hbs”
• O legal de templates é que ajuda a separar os
“views” da sua lógica
• A extensão diz basicamente que estamos
usando templates no servidor.
• Tem o head com os imports de CSS
necessários
• Tem a tag “<my-app>” que é um componente
construído com Angular
• Tem o import do “bundle.js” que empacota a
aplicação app (código criado, frameworks e
dependências)
Entendendo a Estrutura do Projeto
app.js
• De todos os arquivos listado aqui, o “app.js” é o mais
importante
• Ele é o arquivo principal que starta o nosso Express no
servidor
• Cada requisição que chega no servidor passa por esse arquivo
• Desse modo, vários métodos podem ser aplicado na
requisição
Rapidamente....
• Um dos pontos mais importantes é o despacho para a rota
correta
• Aqui encaminhamos a requisição para as rotas da aplicação
app (./routes/app)
Entendendo a Estrutura do Projeto
Os outros arquivos...
• São apenas arquivos de configuração para o
projeto, para o processo de build.
• Normalmente não tem muito o que mexer
aqui...
Rapidamente....
• De forma geral, o arquivo mais
importante para ser mencionado é
o “package.json”
• Ele gerencia toda a produção e
dependências do projeto
• Aqui vemos os scripts que usamos
para inicializar e construir a
aplicação
Atividades
• Para fechar
– Vamos rodar o projeto base e ver o resultado no browser