Skip to content

Instantly share code, notes, and snippets.

@RochaGabriell
Created October 15, 2023 19:43
Show Gist options
  • Save RochaGabriell/b1d74b7213e5b9f71b82f301ed9446ed to your computer and use it in GitHub Desktop.
Save RochaGabriell/b1d74b7213e5b9f71b82f301ed9446ed to your computer and use it in GitHub Desktop.
Criando um Servidor com Node.js Puro

Criando um Servidor com Node.js Puro

Node.js é uma plataforma JavaScript que permite que você crie aplicativos do lado do servidor eficientes. Neste tutorial, vamos criar um servidor web simples usando apenas o Node.js, sem nenhum framework. Isso ajudará você a entender os conceitos básicos de como um servidor funciona.

Passo 1: Configuração do Projeto

Comece criando um novo diretório para o projeto e inicializando um arquivo package.json para gerenciar as dependências e scripts do projeto. Abra seu terminal e siga os passos abaixo:

# Crie um diretório para o projeto
mkdir meu-servidor-node

# Acesse o diretório
cd meu-servidor-node

# Crie um diretório para o cliente
mkdir client

# Crie um diretório para o servidor
mkdir server

# Acesse o diretório do servidor
cd server

# Inicialize um arquivo package.json para o servidor
npm init

Ao executar o comando npm init no diretório do servidor, você será solicitado a preencher informações sobre o seu projeto do servidor. Você pode preencher as informações conforme necessário ou pressionar Enter para aceitar as configurações padrão.

Passo 2: Instalação das Dependências

Usaremos o módulo http incorporado do Node.js para criar o servidor. No entanto, também usaremos o pacote nodemon para facilitar o desenvolvimento, pois ele reiniciará automaticamente o servidor sempre que você fizer alterações no código.

No diretório do servidor, instale o nodemon como uma dependência de desenvolvimento executando o seguinte comando:

npm install nodemon --save-dev

Passo 3: Criando o Servidor

Agora, crie um arquivo index.js na raiz do seu diretório do servidor. Este será o arquivo principal do servidor. Vamos adicionar o código para criar o servidor HTTP simples:

const http = require('http')
const fs = require('fs')
const port = 8080

const server = http.createServer((request, response) => {
  response.writeHead(200, { 'Content-Type': 'text/html' })

  if (request.url === '/') {
    fs.readFile('../client/index.html', (error, content) => {
      if (error) {
        response.writeHead(404, { 'Content-type': 'text/plain' })
      } else {
        response.end(content)
      }
    })
  } else if (request.url === '/test') {
    response.end('Deu certo!')
  } else {
    response.writeHead(404, { 'Content-type': 'text/plain' })
    response.end('Page Not Found')
  }
})

server.listen(port, () => {
  console.log(`Servidor Executando na Porta: http://localhost:${port}/`)
})

Neste código:

  • Importamos os módulos http e fs para criar o servidor e lidar com o sistema de arquivos.
  • Definimos a porta na qual o servidor será executado (8080 no nosso exemplo).
  • Criamos o servidor usando http.createServer() e definimos como ele deve responder às solicitações.
  • response.writeHead(200, { 'Content-Type': 'text/html' }): Esta função define o cabeçalho da resposta HTTP.
  • response.end(): Esta função é usada para encerrar a resposta HTTP e enviá-la de volta ao cliente. Dependendo do contexto, ela pode ser usada para enviar conteúdo, como o conteúdo HTML ou mensagens de erro.
  • server.listen(port, () => { ... }): Esta função inicia o servidor e começa a ouvir as solicitações na porta especificada.

Passo 4: Crie um arquivo HTML

Agora, crie um arquivo HTML simples na pasta do cliente (diretório "client" que criamos anteriormente). Certifique-se de salvá-lo com o nome index.html.

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>

  <h1>Hello World!</h1>
  <h2>Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempora deleniti, minus veniam totam debitis earum quasi ea. Provident ipsam unde, veritatis vel ipsa eos, cupiditate non vero numquam architecto quaerat?</h2>
  
</body>
</html>

Esse é um exemplo simples, mas é suficiente para ilustrar como o servidor enviará o conteúdo HTML para os clientes que acessarem o servidor.

Passo 5: Inicie o Servidor

Agora que o servidor e o arquivo HTML estão prontos, você pode iniciar o servidor usando o nodemon que instalamos anteriormente. No diretório do servidor, execute o seguinte comando:

npm nodemon index.js

Isso iniciará o servidor e, se tudo estiver correto, você verá uma mensagem indicando que o servidor está em execução na porta 8080. Abra seu navegador e acesse http://localhost:8080/ para ver o conteúdo da página HTML.

Parabéns! Você criou com sucesso um servidor web simples com Node.js puro. Este é um ponto de partida para entender os conceitos básicos de como criar servidores web usando Node.js e pode ser expandido para criar aplicativos mais complexos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment