Giter Site home page Giter Site logo

nodejs-integration-tests-jwt-project's Introduction

Esse projeto é uma API base para ser utilizada na aula sobre JWT do curso de NodeJS da Trybe.

Baixando o projeto

No seu terminal, cmd, power shell ou bash execute os seguintes comandos:

  • git clone [email protected]:tryber/nodejs-jwt-base-project.git
  • cd nodejs-jwt-base-project
  • npm i

Preparando o ambiente

  • Faça uma cópia do arquivo .env.example, criando um arquivo .env com as suas credenciais SQL;
  • No seu terminal, execute o comando npm start;
    • Esse comando vai, automaticamente, rodar o script de prestart, que inicializará o banco com o sequelize.
  • O comando acima irá criar o banco de dados jwt_exercises_dev e povoar as tabelas Users e Posts.

Estrutura base do projeto

Abaixo, está a estrutura base do projeto. Ele implementa uma API em NodeJS e Express que permite criar usuários, listar posts e fazer login. O projeto base contém uma autenticação simples. Durante a aula, é mostrado como adicionar à API autenticação via JWT.

├── README.md
├── api
│  ├── routes.js
│  └── server.js
├── config
│  └── config.js
├── controllers
│  ├── createUser.js
│  ├── getUsers.js  
│  ├── login.js
│  └── posts.js
├── migrations
│  ├── users.js
│  └── posts.js  
├── models
│  ├── index.js
│  ├── Post.js
│  └── User.js
├── seeders
│  ├── users.js
│  └── posts.js
├── .env.example
├── package-lock.json
└── package.json

Modelos

Modelos são responsáveis por fazer o mapeamento entre as entidades que sua aplicação manipula e a camada de dados. Contêm todas as interações responsáveis por ler e escrever dados no seu banco de dados.

Estão organizados dentro da pasta models.

Migrations

Migrations são responsáveis por criar e/ou restaurar as alterações no banco de dados.

Estão organizados dentro da pasta migrations e há uma migration para cada tabela no banco de dados. No exemplo, existem as tabelas Users e Posts.

Seeders

Seeders são responsáveis por povoar os dados das tabelas do banco de dados.

Estão organizadas dentro da pasta seeders. No exemplo, existem seeders para as tabelas Users e Posts.

Controllers

Controllers são as funções utilizadas como callbacks na definição de rotas. Eles são responsáveis por lidar com as requisições que chegam nas diferentes rotas de sua aplicação e criando a resposta que será enviada para o cliente. Normalmente, interagem com um ou mais modelos para ler/escrever dados do banco de dados.

A API possui quatro controllers:

  • createUser.js: Lida com a criação de novo usuários.

  • getUsers.js: Encontra os usuários cadastrados.

  • login.js: Responsável pela lógica de login.

  • posts.js: Encontra os posts de um usuário.

api/routes.js

Esse é um arquivo que concentra os controllers do projeto.

api/server.js

Aqui é onde é criado de fato a API com o Express. Também é onde todas as rotas são configuradas.

.env.example -> .env

Este arquivo é responsável por guardar os dados sensíveis do servidor. Este arquivo deve ser editado com as credencias MySQL da pessoa desenvolvedora. Neste exemplo, está sendo utilizado o usuário root com senha inexistente. **⚠️ O arquivo .env arquivo não deve ser commitado na esmagadora parte das vezes, pois armazena dados sensíveis. ** ⚠️ Lembre-se de editar este arquivo com as suas credencias.

nodejs-integration-tests-jwt-project's People

Contributors

felipemuller20 avatar gabrielcoruja avatar henriquejensen avatar mjgargani avatar nato-re avatar renanvamo avatar roziscoding avatar thiago-mariotto avatar thiagomartins367 avatar ttrmoreira avatar tuliostarling avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.