- controllers
- databases
- entities
- Repositories
professora falou que devemos iniciar o typescript com o comando:
yarn tsc --init
E alterar o tsconfig para "strict":false
GET = Buscas | POST = criação | PUT = Alteração | DELETE = deletar | PATCH = Alterar uma infomação especifica
criar um workspace utilizar esta aplicação para método POST
queryBuilders - KNEX.JS - funções que facilitam na escrita do nosso código backend.(porém, nesta aplicação não usaremos.)
framework TYPEORM => vai nos ajudar na integração da aplicação com o nosso banco de dados.
Connections: PK=primary key:Id UUID FK=Chave estrangeira:exemplo id que esta em users , pode ser utilizada em outra tabela.
public UP - executar uma migration public DOWN -se precisar reverter a estrutura. criar tabela-registrar migration. manter o banco de dados atualizados. históricos de tudo o que é feito no nosso banco de dados.
Em nosso projeto vão ter as tabelar/migrations que vamos utilizar:
yarn typeorm migration:create -n CreateNomeMigration
cria uma migration com public up - toda a estrutura vai ali em up. e public down
Connections
Users => await queryRunner.createTable( new Table({ name: 'users', columns: [ { name: "id", type: "uuid", isPrimary: true, }, { name: "email", type: "varchar", }, { name: "createdAt", type: "timestamp", default: "now()",
}
]
})
Messages
Settings => await queryRunner.createTable( new Table({ name: 'setings', columns: [ { name: 'id', type: 'uuid', isPrimary: true }, { name: 'username', type: 'varchar' }, { name: 'chat', type: 'boolean', default: true }, { name: 'updatedAt', type: 'timestamp', default: 'now()' }, { name: 'createdAt', type: 'timestamp', default: 'now()' } ] }) );
Após as migrations criadas, por ela para funcionar:
yarn typeorm migration:run
uma Entidade possui atributos Cada entidade é uma tabela, e cada atributo é cada uma das colunas dessas tabelas.
Manipulam dados da nossa aplicação forma de deixar a aplicação mais separada/dividida.
Routes Params - de rotas query Params - filtros de buscas body Params
Executar a regra de negócio da aplicação - liberar responsabilidade dos controllers.
criar pasta services - que ficará com a regra de negócio dividir responsabilidades entre controllers e services.
Relacionamento entre tabelas sempre tem que ter a FOREIGNKEY.
Nome e configurações da tabela:
Exemplo: PrimaryColumn, Column, JoinColumn=>Relacionamento entre tabelas, MANYTOONE = Muitas 'MESSAGES' para um 'USERS'
Aos 58:55/h Professora falou que se algum atributo eu não quero deixar obrigatório eu coloco um ponto de interrogação na logo após o atributo, EXEMPLO => Admin_id?:string
PRIVATE = somente será utilizado o método na classe no qual estamos trabalhando e não em outra classe..