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:
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 Sobre:
- Página Contato:
- 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();
});
});
server.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 😎.