Francisco Chaves

Francisco Chaves

Software Developer. Entusiasta Linux.

© 2020

Modo escuro

Servidor Web com Node.js

Logo Servidor Web com Node.js

Olá pessoal, hoje iremos criar um servidor com Node.js, para servir uma página HTML após a requisição no navegador, sistema operacional utilizado neste tutorial será o Xubuntu 18.04.

Primeiramente precisamos ter o Node.js instalado no computador, acesse este link para instalá-lo no sistema operacional Xubuntu. Com o Node.js instalado, abra o terminal com as teclas de atalho CTRL + ALT + T e crie um diretório com nome servidor:

mkdir servidor

Entre no diretório:

cd servidor

Crie o arquivo que será o nosso servidor com o editor nano:

nano index.js

Para criar o servidor web, vamos utilizar o módulo http, adicione o conteúdo a seguir para construir o servidor:

const http = require('http');

const server = http.createServer(function(request, response) {
  response.write('<h1>Hello Node.js</h1>');
  response.end();
}).listen(3000, function() {
  console.log('Servidor funcionando em http://localhost:3000')
});

Salve o arquivo com as teclas CTRL + O, feche o editor nano com as teclas CTRL + X, e execute o servidor com o comando abaixo:

node index.js

Acesse o navegador na URL http://localhost:3000 e visualize a resposta do servidor:

Resposta do servidor Node.js

Agora vamos fazer alguns ajustes no servidor manipulando a requisição do usuário para a página de destino, assim o servidor ficará mais dinâmico:

const http = require('http');

const server = http
  .createServer(function (request, response) {
    const url = request.url.toLowerCase();

    if (url === '/' || url === '/home') {
      response.write('<h1>Home</h1>');
    } else if (url === '/sobre') {
      response.write('<h1>Sobre</h1>');
    } else if (url === '/contato') {
      response.write('<h1>Contato</h1>');
    } else {
      response.write('<h1>404</h1>');
    }

    response.end();
  })
  .listen(3000, function () {
    console.log('Servidor funcionando em http://localhost:3000');
  });

Com a alteração feita no servidor, podemos acessar a página Home, Sobre, Contato, e se a página não existir é exibida 404.

  • Página Home:

Página Home

  • Página Sobre:

Página Sobre

  • Página Contato:

Página Contato

  • Página 404:

Página 404

Estamos quase terminando, agora vamos criar uma pasta com o nome public, onde ficará os nossos arquivos HTML:

mkdir public

Dentro da pasta public crie quatro arquivos HTML, conforme o código template abaixo, alterando o título de cada arquivo:

<html>
  <body>
    <h1>Título</h1>
  </body>
</html>

A estrutura de pastas deve ficar conforme abaixo:

.
├── index.js
└── public
    ├── 404.html
    ├── contato.html
    ├── home.html
    └── sobre.html

Altere o código do servidor adicionando o módulo fs para manipulação de arquivos, assim quando o usuário realizar a requisição, o servidor faz a leitura do arquivo HTML correspondente e devolve o resultado como resposta:

const http = require('http');
const fs = require('fs');

const server = http
  .createServer(function (request, response) {
    const url = request.url.toLowerCase();
    let page = '';

    if (url === '/' || url === '/home') {
      page = 'home';
    } else if (url === '/sobre') {
      page = 'sobre';
    } else if (url === '/contato') {
      page = 'contato';
    } else {
      page = '404';
    }

    fs.readFile(`${__dirname}/public/${page}.html`, function (err, data) {
      if (page === '404') {
        response.writeHead(404, { 'Content-type': 'text/html' });
      } else {
        response.writeHead(200, { 'Content-type': 'text/html' });
      }
      response.write(data);
      response.end();
    });
  })
  .listen(3000, function () {
    console.log('Servidor funcionando em http://localhost:3000');
  });

Pronto pessoal, criamos o nosso servidor web com poucas linhas de código utilizando Node.js 😎.

×

Inscreva-se para novas atualizações