Servidor HTTP Básico - NodeJS Primeiros Passos

Servidor HTTP Básico - NodeJS Primeiros Passos

Tulio Faria
Tulio Faria15 de maio de 2017
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:
5L5-EoJbMfY
Assistir 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!
Tulio Faria
Autor
Tulio Faria15 de maio de 2017

Últimas do Blog