Cursos / Informática para Internet / Desenvolvimento Backend / Aula

arrow_back Aula 07 - Banco de dados relacional (parte 2)

Organizando o projeto


Inicialmente, é importante lembrar que foi deixada como exercício a implementação da rota de usuários. O código implementado deve ficar de acordo com o código abaixo:

const express = require('express')
const router = express.Router()
const validarUsuario = require('../middleware/validarUsuario.middleware')
const { Usuario } = require('../db/models')

router.post('/', validarUsuario)
router.put('/', validarUsuario)

router.get('/', async (req, res) => {
  const usuarios = await Usuario.findAll()
  res.json({ usuarios: usuarios })
})

router.get('/:id', async (req, res) => {
  const usuario = await Usuario.findByPk(req.params.id)
  if (usuario){
    res.json({ usuario: usuario })
  }else{
    res.status(400).json({msg: "Usuário não encontrado!"})
  }
})

router.post('/', async (req, res) => {
  const usuario = await Usuario.create(req.body)
  res.json({ msg: "Usuário adicionado com sucesso!", userId: usuario.id })
})

router.put('/', async (req, res) => {
  const id = req.query.id
  const usuario = await Usuario.findByPk(id)
  if (usuario){
    usuario.email = req.body.email
    usuario.senha = req.body.senha
    await usuario.save()
    res.json({ msg: "Usuário atualizado com sucesso!" })
  }else{
    res.status(400).json({msg: "Usuário não encontrado!"})
  }
})

router.delete('/', async (req, res) => {

  const id = req.query.id
  const usuario = await Usuario.findByPk(id)

  if (usuario){
    try{
      await usuario.destroy()
      res.json({msg: "Usuário deletado com sucesso!"})
    }catch (error){
      res.status(500).json({msg: "Falha ao remover usuário"})  
    }
  }else{
    res.status(400).json({msg: "Usuário não encontrado!"})
  }

})

module.exports = router;

Organizando as pastas

Visando trabalhos futuros, quando pode ser necessária a aplicação de uma ação em todo o projeto, é preciso criar uma pasta scr na raiz do projeto para colocar todo o código dentro dela. Acompanhe a aula e faça as alterações necessárias.

Configurando o Sequelize

Até o momento, toda a configuração do sequelize ficou em uma pasta, porém esse não é o padrão. Então, para uma melhor prática, crie um arquivo .sequelizerc.js (arquivo oculto) e adicione a ele as configurações do banco de dados. Ao final, seu arquivo deve ficar como abaixo:

    const { resolve } = require('path')

    module.exports = {
            'config': resolve(__dirname, 'src', 'db', 'config', 'config.json'),
            'models-path': resolve(__dirname, 'src', 'db', 'models'),
            'migrations-path': resolve(__dirname, 'src', 'db', 'migrations'),
            'seeders-path': resolve(__dirname, 'src', 'db', 'seeders'),
    }

Versão 5.3 - Todos os Direitos reservados