E ai pessoal, tudo bom? Hoje vamos continuar a falar do Node.js criando um servidor web, esse é a segunda parte de três partes escrita. O assunto de hoje ainda é básico em relação ao mundo Node e por isso ainda vou continuar a explicar coisas básicas. Se você ainda não sabe nada sobre Node é aconselhável a ler o primeiro artigo.
Para começar vamos abrir o prompt do Node (Node.js Command Prompt), ao abrir temos a imagem abaixo:
Abrindo o prompt do Node é possível ver que tenho instalado a ultima versão até agora liberada, versão 4.1.2. Na próxima imagem vamos brincar um pouco:
Eu inicie digitando a palavra reservada node e na linha de baixo mandei imprimir uma mensagem, para imprimir a mensagem utilizei a instrução console.log(). Ao dar o enter note que o console imprime o texto que informei na instrução.
Na imagem acima, eu brinco mais um pouco com o console, porem agora eu crio uma função chamada newMessage() e depois a chamo passando um parâmetro como texto que será impresso no console. A diferença entre o primeiro script e segundo é apenas a criação da função
Fiz essa demonstração apenas para se ter ideia do que podemos fazer com o prompt do node. Mas fique tranquilo, esse não é o lugar que vamos utilizar para programar.
Para começar a programar eu sugiro para quem utiliza o Windows a baixar o Visual Studio Code. Mas esse não é aquele programa pesado de desenvolvimento da Microsoft? Não, Visual Studio Code é uma outra IDE, também da Microsoft, utilizada não apenas para desenvolver na plataforma Microsoft como também outras linguagens como é o caso do Node. Visual Studio Code funciona também em Linux e Mac e é muito leve. Para baixar basta seguir para https://code.visualstudio.com/Download. Fique tranquilo caso você queira usar a sua IDE de preferencia. Nesse momento você pode utilizar também o bloco de notas para criar o arquivo JavaScript e colar o conteúdo que vou disponibilizar.
Agora vamos criar um servidor web básico, para isso segue o código abaixo:
Para o servidor web funcionar devemos voltar ao prompt do Node, acessar a pasta onde está o arquivo salvo e executar o comando node basicServerWeb.js, basicServerWeb é o nome do arquivo que queremos que seja executado e desta maneira inciamos uma aplicação web na porta 3000. Na plataforma .Net para levantarmos um servidor web no Visual Studio apenas teclamos o F5, já aqui precisamos do prompt do Node.
Fique atento que caso você tenha deixado o prompt do node em execução é necessário sair e para isso você deve digitar Ctrl + C e o Node deixa de executar.
As imagens abaixo demonstram a instrução para levantar um servidor e o resultado da página impressa pelo servidor Node. Observe que eu tive primeiro que acessar o arquivo e depois executa-lo.
Como podem ver, a página ao fundo é o que a nossa página imprime através do servidor web Node que criamos. Mas agora vamos voltar ao código para saber realmente o que é feito no arquivo basicServerWeb.js.
Na primeira linha estamos utilizando o modulo http e criando uma instancia para a varável http. O que é modulo? Node utiliza o padrão CommonJs para organização e carregamento de módulos, ou seja, http é um modulo que estamos carregando, um modulo do Node que é responsável pela criação de um servidor web. Existem vários outros módulos para diversas coisas, nos próximos artigos nós iremos criar nossos próprios módulos. Mas para usar o padrão CommonJs é necessário duas regras: A primeira é que para carregar um modulo é necessário utilizar a instrução require(‘modulo’), já a segunda regra explicaremos mais a frente em outro artigo.
Na segunda instrução é criado uma função chamada atendeRequisicao no qual será responsável por escutar as solicitações dos usuários e criar uma resposta. Nesta função são enviados os parâmetros, requisição e resposta. Para criar uma resposta para o usuário é utilizado o parâmetro resposta que cria o cabeçalho de resposta e imprime um texto para a página.
Na terceira instrução é criado o servidor web através da variável http chamando a função createServer onde é passado a função de escuta criada antes chamada atendeRequisicao.
Na linha 15 o servidor é levantado e aberto na porta 3000, a função passada como parâmetro é apenas um comando para ser executado quando o servidor for levantado e assim ficar como um log.
Vamos agora brincar com rotas dentro do servidor web que criamos. Para isso quero criar três rotas: home, sobre e contato. Abaixo o código:
Esse código é uma atualização do código anterior, e a mudança aqui é a criação das rotas através do parâmetro requisição que valida a URL e imprime a página desejada.
Hoje conseguimos criar um servidor web básico na plataforma Node. Como Node utiliza JavaScript repare que muitas vezes o parâmetro de uma função é uma outra função (exemplo a função atendeRequisicao que é passado como parâmetro para criar o servidor). Isso não é algo comum em linguagens como C# ou Java. Mas como expliquei no primeiro artigo essa é a diferença do Node, não só por utilizar JavaScript, mas por que as funções passadas como parâmetros são conhecidas como callback e assim facilitando para que o processo não seja bloqueado.
Você deve estar imaginando se Node serve para sistemas complexos onde envolve várias rotas e páginas, já que no exemplo de hoje as coisas ficaram um pouco “horrível” de se programar. Calma! Esse é o modo mais básico para se criar um servidor web. No próximo artigo vamos utilizar um framework que vai facilitar em muito todo esse trabalho manual.
Por hoje terminamos aqui e finalizamos a segunda parte dos artigos em Node. Espero que você já tenha se familiarizado com essa plataforma e gostado do assunto. 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
Be First to Comment