Skip to content

Introdução final Node.js

E ai galera, tudo bom? Hoje vamos ao nosso ultimo artigo de três partes sobre Node. Para quem acompanhou os artigos anteriores, primeira introdução e segunda introdução, viu que no ultimo artigo criamos um servidor web “puro” em Node. Hoje vamos utilizar um framework para facilitar a criação de um servidor web, mas antes vou explicar o que é NPM e para que server no mundo Node.

Quando você instala Node também é instalado o NPM, Node Package Manager ou Gerenciador de Pacote Node. O NPM é um grande aliado para utilizar pacotes de outros desenvolvedores já prontos. Para quem está acostumado com .Net como eu, NPM tem a mesma função do NUGET. Caso precise de uma explicação melhor acesse este link. OK, NPM é um gerenciador de pacote. Para que precisamos aprender isso agora? A resposta é simples. Vamos precisar do NPM para instalar o framework web do artigo de hoje.

O framework web que vamos utilizar é o ExpressJs. Ele é um framework web para Node que facilita o desenvolvimento por já ter muita coisa pronta, por isso é um framework :). O link mostra seu site e nele existe uma boa documentação para entender melhor seu funcionamento.

Para começar a programar vou criar uma pasta que será a pasta da aplicação chamado AppExpress e dentro desta pasta e através do Node.js command digite o comando: npm init.

O primeiro script “npm init” que serve para inicializar a configuração de uma aplicação Node. Através desse comando criamos um arquivo chamado package.json que é onde são salvos todos os pacotes que utilizamos, ou seja, todas as dependências que nossa aplicação necessita. Quando você informar este comando ele irá fazer algumas perguntas, como nome da aplicação, versão e arquivo principal. Você é obrigado a informar apenas o nome da aplicação e no meu caso como arquivo principal eu informei app.js.

O próximo script, npm install express –save, serve para instalar o ExpressJs através do NPM e salvar essa dependência no arquivo package.json através do comando –save. Sem este comando o express é instalado, mas não é salvo como dependência e caso você mude de maquina e queira continuar nesse projeto o NPM não saberá que deve instalar essa dependência para o projeto rodar.

Com tudo pronto, agora sim podemos começar a programar. Para isso vou criar o código abaixo:

Para iniciar o app basta no prompt digitar node app.js (arquivo que estamos usando) e com isso iniciamos a aplicação na porta 3000.

Conforme pode ser visto no código, iniciamos a aplicação criando uma instância do  framework ExpressJs e através dessa instância criamos a variável app.

Na próxima linha estamos criando uma rota, onde através do endereço raiz estamos imprimindo um “Hello World”. Se desejar podemos criar várias rotas. Para criar uma rota temos que criar uma função que recebe dois parâmetros, requisição e resposta. Através da variável resposta estamos usando a função “send” que imprime o texto configurado.

Para fazer o servidor ser escutado na porta 3000 basta utilizar a função “listen” e com isso temos a nossa aplicação pronta.

O exemplo desse aplicativo é bem básico e para falar a verdade quase não mudou desde o nosso ultimo artigo. Por isso vamos começar a melhorar. Iremos novamente utilizar o NPM para fazer uma nova instalação, para isso, crie uma nova pasta para uma outra aplicação e dentro dela e através do Node.js command informe: npm install express-generator -g.

Nessa instalação estamos instalando o express-generator que é uma ferramenta do express para gerar o esqueleto funcional de uma aplicação. Como observação, utilizamos o comando -g para instalar de maneira global no computador.

express-h

Para gerar o esqueleto da aplicação basta utilizar o comando express appName, onde appName é o nome da pasta que você está criando junto com o aplicativo gerado. Mas também podemos utilizar algumas opções conforme a imagem acima.

Como todo framework web é utilizado uma engine de visualização para converter especifico códigos em HTML, igual temos o Razor para MVC .Net. Através do ExpressJs temos algumas opções de engine como jade (default), ejs, handlebars e hogan. A engine Jade é muito boa e diminui em muito digitação de código para gerar HTML e por isso vamos utilizar ele, mas fique a vontade caso queira mudar para teste.

Estrutura express gerado

Após informar o comando express myApp, onde o nome da aplicação será myApp a estrutura da imagem acima é criada para a aplicação. Entender os arquivos gerados não é difícil e até intuitivo. Mesmo assim explico alguns deles a seguir:

  • App.js é o principal arquivo da aplicação, aqui acontece as configurações.
  • Na pasta public é onde ficam os arquivos voltados para a parte cliente. Aqui ficam os arquivos estáticos.
  • Na pasta routes temos as rotas do sistema.
  • Na pasta views temos as nossas views que são gerados através do Jade.
  • Arquivo bin/www é o inicializador da aplicação, é por ela que devemos começar.

Para inicializar nossa aplicação basta digitar “npm start”. Note que em todos os exemplos anteriores utilizamos o comando node file.js e agora estamos utilizando npm start. Se abrirmos o arquivo package.json temos um comando chamado “start” que contém o script node ./bin/www, ou seja, digitar npm start é o mesmo que node file.js. Você pode customizar vários comandos.

Se acessarmos o arquivo www veremos que a porta que está configurada é a 3000 e ao inicializarmos a aplicação deveremos acessar essa a URL http://localhost:3000 para ver o resultado.

Agora vamos dar uma olhada mais a fundo no app gerado pelo express-generator e para isso vamos olhar o arquivo app.js. As seis primeiras linhas desse arquivo são criação de variáveis que recebe uma instância. Abaixo explico a responsabilidade de cada variável criada:

  • express: Instância do framework web.
  • path: Utilitário para manipulação e transformação de caminho de arquivo. Através dele conseguimos pegar o caminho dos arquivos.
  • favicon: Configurar o ícone que aparece no browser aberto.
  • logger: Log da aplicação em requests HTTP.
  • cookieParser: Analisador de cookie.
  • bodyParser: Analisador de corpo.

Cookie-Parser, Body-Parser e Logger são middlewares. Neste artigo não vou explicar o que é middlewares, vai ficar para um próximo artigo, mas vou dar um resumo fácil. Cookie-Parser preenche a propriedade cookies do objeto request (req.cookies). Body-Parser preenche a propriedade body do objeto request (req.body). Essas propriedades que são preenchidas por esse middlewarers não existem no Node, elas são criadas em tempo de execução por esses terceiros (por exemplo cookie-parser) antes da requisição chegar nas actions. Só uma observação, tanto cookie-parser como body-parser fazem parte do framework ExpressJs, porem, a partir da versão 4 foi refatorado e ficou separado do core para uma melhor manutenção. Então, em versões anteriores você pode encontrar de outro modo.

Agora que você entendeu para que serve cada variável de instancia criada no arquivo app.js, pode se ver que elas são usadas depois para configurar a aplicação  e assim habilitar funcionalidades. Por default o ExpressJs não tem nada configurado e é sua responsabilidade habilitar o que você quer, por isso usamos o express-generator para criar algo já pronto.

O ExpressJs é um excelente framework web e é um dos mais utilizados no mundo Node. Ele facilita a criação de aplicações e com a utilização do express-generator você pode criar uma aplicação em minutos. Mas tudo isso não é possível se você não utilizar o NPM como gerenciador de pacotes e lembrar de a cada instalação de uma nova dependência atualizar o arquivo package.json.

Bom, nosso artigo termina por aqui e espero que vocês tenha gostado desse resumo em 3 artigos.

Por favor, não deixe de comentar, até mesmo para criticar 🙂

Abraços e fiquem com Deus.

Fontes

Livro NodeJs Casa do Código, Caio Ribeiro.
Livro Mean Caso do Código, Flavio Almeida.
http://Nodejs.org

Published inExpressJsnode.js

Be First to Comment

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *