Este é o backend dos POG. Ele utiliza Node.js, Express e Prisma para gerenciar APIs RESTful, autenticação JWT e operações de banco de dados PostgreSQL. O projeto inclui documentação automática com Swagger e validações robustas com Yup.
- @prisma/client: Cliente gerado pelo Prisma para interagir com o banco de dados.
- bcrypt: Biblioteca para hash de senhas.
- cors: Middleware para lidar com políticas de CORS.
- dotenv: Carrega variáveis de ambiente de um arquivo
.env. - express: Framework web para criar rotas e middlewares.
- express-rate-limit: Middleware para limitar requisições por IP.
- jsonwebtoken: Para criação e validação de tokens JWT.
- swagger-jsdoc: Gera documentação para APIs automaticamente com base em comentários.
- swagger-ui-express: Exibe a documentação gerada pelo Swagger.
- yup: Para validações de objetos e schemas.
- jest: Framework para testes unitários.
- nodemon: Reinicia o servidor automaticamente em desenvolvimento.
- prisma: ORM para trabalhar com o banco de dados.
- supertest: Para testes de APIs REST.
index.js: Arquivo principal que inicia o servidor.server.js: Configurações do servidor Express, incluindo middlewares e rotas.prisma/schema.prisma: Modelo de dados usado pelo Prisma..env.sample: Exemplo de variáveis de ambiente necessárias.
Crie um arquivo .env na raiz do projeto baseado no .env.sample:
PORT=3000
NODE_ENV=development
DB_PASSWORD=sua_senha
DB_PORT=5432
DB_USER=seu_usuario
DB_HOST=localhost
DATABASE_URL=postgresql://seu_usuario:sua_senha@localhost:5432/nome_do_banco
JWT_SECRET=sua_chave_secreta
- Abra o PgAdmin e conecte-se ao servidor PostgreSQL.
- Crie um novo banco de dados com o nome desejado.
- Atualize a variável
DATABASE_URLno arquivo.envcom as credenciais do banco criado.
Exemplo:DATABASE_URL=postgresql://postgres:senha@localhost:5432/meu_banco - Certifique-se de que o banco de dados esteja funcionando corretamente ao testar a conexão no PgAdmin.
- Execute o seguinte comando para sincronizar o schema do Prisma com o banco de dados:
npx prisma db push
- Para criar e aplicar migrações no banco de dados, execute:
npx prisma generate
- Após a migração, gere o cliente Prisma para interagir com o banco de dados:
npx prisma migrate dev --name nome_da_migracao
- Para abrir o Prisma Studio e gerenciar os dados, execute:
npx prisma studio
- Para iniciar o servidor em modo de desenvolvimento, use o seguinte comando
npm run start:dev
- Para rodar o servidor em produção, utilize:
npm run start:prod
- O servidor estará disponível no endereço, lá terá a documentação da API!:
http://localhost:3000