Servidor HTTP Básico - NodeJS Primeiros Passos

Na série NodeJS Primeiros Passos, você poderá os conceitos básicos de Javascript e NodeJS e, assim, poder colocar a mão na massa. Neste primeiro post, confira como criar um Servidor HTTP básico. Primeira coisa que temos que fazer é acessar o www.nodejs.org e fazer o download (não vou entrar nessa parte, pois depende da…

Servidor HTTP Básico - NodeJS Primeiros Passos


por: Tulio Faria

Categoria: Video-Tutorial
Thumbnail

Na série NodeJS Primeiros Passos, você poderá os conceitos básicos de Javascript e NodeJS e, assim, poder colocar a mão na massa. Neste primeiro post, confira como criar um Servidor HTTP básico.

Primeira coisa que temos que fazer é acessar o www.nodejs.org e fazer o download (não vou entrar nessa parte, pois depende da plataforma que você está utilizando, mas de modo geral é bem simples de se fazer).

Você precisa conseguir pelo menos escrever no Shell (prompt de comando) o seguinte:

npm -v

Com isso, conseguimos ver a versão do node package mananger.

E se colocarmos:

node -v

Aparecerá a versão do node que estamos usando. Se aparecer normalmente a versão deles, significa que estão no path do seu sistema e você conseguirá executá-los diretamente. Se ele não estiver no path do sistema, recomendo que coloque a pasta de instalação do Node no path.

Como Node é JavaScript, no sublime vou criar um arquivo novo e importar um módulo do node chamado http, ele permite que manipulemos requisições http. Também vamos criar um servidor com uma função request e response, assim, tudo que entrar no meu servidor, vou devolver o texto “devpleno.com”:

var http: require('http');
http.createServer(function(req, res){
    res.end('DevPleno.com');
});

Uma coisa interessante de se notar é que esta função é uma função anonima e também é executada de forma assíncrona. Isso quer dizer que o servidor fica ‘ouvindo’ uma porta, mas só irá executar a função quando um evento acontecer, ou seja, quando um cliente fizer uma requisição para o servidor. Qual a vantagem disso? Chamamos isso de não blocking, ou seja, o servidor não fica esperando chegar uma requisição. Quando um evento de requisição chegar, ele irá executar o trecho do código. Depois de criado o servidor, precisamos ouvir a porta (a porta diferencia que vai receber a solicitação dentro da máquina).

var http: require('http');
http.createServer(function(req, res){
    res.end('DevPleno.com');
}).listen(3000);

Vamos salvá-lo como server.js, abrir o prompt de comando e executar o seguinte comando:

Node server.js

Isso vai ‘Startar’ nosso servidor. Quando abrirmos o browser e escrevermos localhost:3000, recebemos a mensagem DevPleno.com, assim, é possível ver que o servidor está rodando normalmente. O bom disso é que não precisamos importar bibliotecas de terceiros, já que o HTTP é um módulo que faz parte do core do node. O que podemos fazer a mais? Podemos, por exemplo, importar um módulo que lida com FileSystem, criar uma var contents que receberá um readFileSync (lembrando que não é muito bom usar o Sync, mas estou fazendo apenas com intuíto de demonstração).

var http: require('http');
var fs = require('fs');
var contents = fs.readFileSync('contents.html')
http.createServer(function(req, res){
    res.end(contents);
}).listen(3000);

Em seguida, criar um HTML com o nome contents

<html>
    <body>
    <h1>DevPleno.com</h1>
    </body>
<html>

Aperte Ctrl C para parar o servidor. Vamos reiniciar o servidor com  node server.js, recarregar o browser e ele irá requisitar o contents.html do jeito que criamos.

Claro que para criarmos uma aplicação mais avançada, iremos utilizar alguns módulos de terceiros para que esse processo todo fique um pouco mais fácil e mais robusto, mas essa é só uma parte introdutória. 

Confira o passo a passo no vídeo:

Fique à vontade para deixar suas dúvidas e sugestões nos comentários. Curta o DevPleno no Facebook, inscreva-se no canal e não se esqueça de cadastrar seu e-mail para não perder as novidades. Abraço!