Skip to content

liming8502628/api-basic-javascript_openspec

 
 

Repository files navigation

Aqui está o tutorial reescrito de forma mais didática, com explicações claras, diretas e em ordem lógica, mostrando o que cada passo faz e por que é necessário.


Tutorial Didático — Configuração de uma API Node.js com Express + Nodemon

Este guia explica, de forma objetiva, cada etapa para criar e executar uma API básica usando Node.js, Express e Nodemon com JavaScript puro (ES Modules).


🎯 Execução (Resumo Final)

✅ 1. Instalar dependências

npm install

✅ 2. Rodar o projeto

npm run dev

✅ 3. Visualizar no navegador

O terminal mostrará:

Servidor rodando em http://localhost:3000

Abra o link no navegador.


📘 Tutorial Completo — Passo a Passo

A seguir está o fluxo completo da criação do zero até rodar a API.


1. Criar o projeto

Primeiro criamos a pasta do projeto e inicializamos o Node.js:

mkdir minha-api
cd minha-api
npm init -y

O que isso faz?

  • Cria uma pasta para a API.
  • Gera o arquivo package.json com as configurações do projeto.

2. Instalar as dependências

Instale o Express (servidor web) e o Nodemon (reinicia o servidor automaticamente sempre que você altera o código).

npm install express
npm install -D nodemon

Por que isso é importante?

  • Express: permite criar rotas HTTP.
  • Nodemon: evita rodar o node manualmente a cada alteração.

3. Configurar o package.json

Adicione a linha para permitir uso de ES Modules (import/export):

"type": "module"

Isso ativa o modo moderno do JavaScript dentro do Node.


4. Criar o arquivo .gitignore

Serve para ignorar arquivos que não devem ir para o Git (como node_modules).

touch .gitignore

Conteúdo:

node_modules
dist
*.log
*.tsbuildinfo

5. Criar o arquivo principal da API

Crie a pasta src e o arquivo da aplicação:

📄 src/index.js

import express from "express"

const app = express()
const PORT = 3000

app.get("/", (req, res) => {
    res.send("API com JavaScript e Nodemon 🚀")
})

app.listen(PORT, () => {
    console.log(`Servidor rodando em http://localhost:${PORT}`)
})

O que está acontecendo aqui?

  • Criamos o servidor Express.
  • Definimos a rota /.
  • Subimos o servidor na porta 3000.

6. Configurar o Nodemon

Crie um arquivo de configuração para facilitar o uso:

📄 nodemon.json

{
    "watch": ["src"],
    "ext": "js",
    "ignore": ["node_modules"]
}

O que isso faz?

  • Observa alterações na pasta src.
  • Executa arquivos .js.
  • Ignora a pasta node_modules.

7. Ajustar os scripts no package.json

Adicione o script de desenvolvimento:

"scripts": {
  "dev": "nodemon src/index.js"
}

Por que isso é útil? Permite rodar o servidor com:

npm run dev

Sem precisar digitar comandos longos.


8. Rodar o projeto

Execute:

npm run dev

Se tudo estiver certo, o terminal mostrará:

Servidor rodando em http://localhost:3000

Agora é só abrir no navegador:

👉 http://localhost:3000


🎉 Pronto!

Você configurou uma API Node.js moderna, organizada e com recarregamento automático (hot reload) usando Nodemon.


🔐 API Endpoints

POST /users/register - Registro de Usuário

Cria uma nova conta de usuário.

Requisição

curl -X POST http://localhost:3000/users/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "senha123"
  }'

Resposta de Sucesso (201)

{
    "id": 1,
    "email": "[email protected]",
    "createdAt": "2025-12-05T10:30:00.000Z"
}

Validações

  • ✅ Email é obrigatório
  • ✅ Senha é obrigatória
  • ✅ Email deve ter formato válido (contendo @ e domínio)
  • ✅ Senha deve ter no mínimo 6 caracteres
  • ✅ Email não pode estar em uso (409 Conflict)

Exemplos de Erros

Email inválido (400)

{
    "error": "Formato de email inválido"
}

Senha muito curta (400)

{
    "error": "Senha deve ter no mínimo 6 caracteres"
}

Email já cadastrado (409)

{
    "error": "Email já está em uso"
}

Próximos passos:

✔ Rotas separadas ✔ Controllers e Services ✔ Tratamento de erros ✔ Middlewares ✔ Arquitetura em camadas

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 100.0%