Boa noite pessoal.
Hoje estou meio inspirado e acho que esse post vai ficar grande!
O assunto é bem legal, muitos já ouviram falar e talvez poucos se atrevem a testar, mas hoje é o dia.
O que é Node.js?
É um interpretador JavaScript, escrito em C++, do lado do servidor e sim é Open Source.
JavaScript no servidor? Algo inimaginável há um tempo atrás. O Node veio com uma proposta interessante. Ele possibilita que criemos aplicativos altamente escaláveis e que mantém milhares de conexões simultâneas. Ou seja, ao contrário do Java e algumas outras linguagens, que reservam um determinado espaço de memória(aprox. 2bm) e processamento para manter as conexões simultâneas, o Node.js cria novas instancias da aplicação, para lidar com a demanda, assim o servidor não tem que monitorar e nem requisitar mais recursos.
Se houver grande interesse de conhecimento, pode ler algo no developerWorks da IBM:
E a trilha Node.js do Giovanni Bassi:
Tenha certeza que se você ler os links acima, não estará perdendo tempo :).
Vamos a parte prática?
A instalação do Node.js é bem simples, entrar no site e baixar:
Para os amantes do Terminal, nos nomes existem links com tutoriais mais profundos:
Mac, com o HomeBrew:
brew install node
(Tem que instalar Python também)
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Windows:
Feito isso, só testar com o famoso version:
node --version
v0.10.25
E tudo certo.
Vamos fazer o clássico Hello World?
Faremos toda tarefa usando JavaScript e um pouquinho, quase nada, de HTML.
Em seu diretório favorito, crie um arquivo chamado helloworld.js e em seu interior digite e entenda:
// Carrega a biblioteca HTTP do Node.js
var http = require('http');
// Cria um serviço web para tratar a requisição de resposta da mensagem Hello World.
var server = http.createServer(function (request, response) {
// Define os parâmetros de cabeçalho de resposta.
response.writeHead(200, {'Content-Type': 'text/html'});
// Escreve uma mensagem de resposta do servidor.
response.write('<html><body><h1>Hello World!</h1></body></html>');
// Envia uma resposta para o cliente
response.end();
});
// Define a porta e IP que será executado a aplicação.
server.listen(3000);
// Imprime mensagem no terminal do servidor.
console.log('Servidor Node.js em execucao');
Para testar é fácil, vá até seu terminal, caminhe até o diretório do arquivo helloworld.js e digite:
node helloworld.js
Servidor Node.js em execucao
Agora é só abrir seu navegador favorito e inserir a url:
Quem estiver com pique, continue. Vamos tentar algo um pouco mais legal.
Imagine que você precisa requisitar ao seu servidor a soma de dois números. Se você não viu, faça esse exercício em Haskell também.
Mas vamos lá, JavaScript e tal...
Em seu diretório favorito, crie um novo arquivo chamado soma.js e em seu interior digite:
var http = require("http");
var url = require("url");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
// Pegando os parâmetros passados via URL
var params = url.parse(request.url, true).query;
var x = params.numberX;
var y = params.numberY;
var inputX = new Number(x);
var inputY = new Number(y);
soma = new Number(inputX + inputY);
response.write(soma.toString());
response.end();
}).listen(3000);
console.log("Somando dois números");
E como executar?
node soma.js
Mas ao abrir seu navegador, não estará vendo resultado algum(NaN)... Por que?
Porque não passamos nenhum parâmetro via url.
Tente de novo assim:
Tente de novo assim:
Entenda...
? | Indica passagem de parâmetros |
numberX | Primeiro parâmetro |
& | Indica passagem de mais de um parâmetro |
numberY | Segundo parâmetro |
Verá algo muito mais legal:
7
O servidor Node.js, se emcumbiu de fazer a soma e printar na tela o resultado. "Fácil" não?
Para fixar, vou deixar um exercício básico:
Faça uma aplicação Node.js que gera um número aleatório, no intervalo de 0 - o número passado via parâmetro.
Dica:
(Math.random() * seu_numero).toFixed(0);
Assim você gera um número pseudo-randômico em JS.
A resposta está no meu GitHub. Qualquer dúvida, email-me: abner.terribili@gmail.com ou comente abaixo.
Valeu galera!
Nenhum comentário:
Postar um comentário