Skip to content

andrrff/c.r.u.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Create.Read.Update.Delete - C.R.U.D

Website GitHub repo size GitHub


Comandos

npm start

porta:

localhost

Caso não funcionar pode ser porque você não tenha o Bunyan link

npm i -g bunyan

Modelo

  • id: Numero de indentificação único(gerado auto pelo MongoBD Atlas);
  • firstName: String referenciando o primeiro nome;
  • lastName: String referenciando o segundo/último nome;
  • nickname: String de identificação único à escolha do usuário;
  • address: String referenciando o endereço;
  • bio: Uma breve descrição sobre o usuário em String;
  • dataLancamento: Data da criação, no tipo padrão Date;
  • dataUltima: Data da ultima modificação, no tipo padrão Date;

mais sobre...


Métodos

  • Cadastro(create user)

Method URI File View
GET / app\controller\home.js views/pages/index.ejs
POST / app\controller\home.js views/pages/index.ejs
  • Data(read users)

Method URI File View
GET/HEAD /data app\controller\data.js views/pages/data.ejs
GET/HEAD /data/search?:nickname app\controller\data.js views/pages/data.ejs
  • Editar Usuário(update user)

Method URI File View
GET/HEAD /data/:user_id app\controller\updateUser.js views/pages/dataUnique.ejs
GET/HEAD /data/:user_id/view_raw app\controller\updateUser.js resource.send(user.json)
GET/HEAD /data/:user_id/mode_edit app\controller\updateUser.js views/pages/edit.ejs
PUT /data/:user_id/mode_edit app\controller\updateUser.js views/pages/actionPage.ejs
  • Delete Usuário(delete user)

Method URI File View
DELETE /data/:user_id app\controller\deleteUser.js views/pages/actionPage.ejs

Regras

  • Somente UM nickname pode existir
  • O nickname deve ter no máximo 30 caracteres
  • A bio deve ter no máximo 100 caracteres OBS* Estas regras devem ser seguidas à risca!

Router

Resumo

Usei o expressjs e foi tudo muito simples a construção de rotas com ele, usando o Design Pattern MVC (Model, View and Controller). As rotas estão na pasta app/controller, ainda falta uma organizada a mais, para separar as rotas propriamente ditas das "funcoes", no caso DELETE e PUT.

Arquivos

app/controller/home.js

Este arquivo é o responsável pela pagina inicial da aplicação, a sua principal função e realizar o POST, no caso seria a criação de um novo usuário, mas não é somente isso, ele faz a comparação com outros elementos dentro database, por isso, usa-se também o método GET para fazer a parte lógica.

app/controller/data.js

Depois que temos um usuário registrado, os dados dentro do MongoDB, são extraídos usando o método GET(a interação com o MongoDB é feita com o Mongoose), este arquivo é o responsável pelo redirecionamento para rota de um ID específico, saíndo do arquivo data.ejs para o dataUnique.ejs, sem contar a caixa de pesquisa, em que usa-se o query.

app/controller/doc.js

Bom... Você já deve desconfiar o que ela faz, usando o metodo GET mas apenas para um pequeno render, por que como nós usamos páginas modularizadas, temos que está destribuindo "props" para elas terem valores e preencherem os itens, como por exemplo a palavra "Documentação", ela é um < % = title % > , mas que dentro do arquivo doc recebe uma valor para ser retornada no arquivo ".ejs", este conceito se aplica à todos os outrs itens sitados anteriormente.

app/controller/deleteUser.js && app/controller/updateUser.js

Que bom que ainda está lendo isso, chegamos nos dois arquivos que usam de metodos muito importantes, o PUT e o DELETE, quando saímos da rota data/:id, ela nos redireciona para duas possíveis escolhas "Editar" e "Deletar", em que se encontram no updateUser.js e deleteUser.js respectivamente, para usa-los, temos que importar o method-override no meu caso estou usando a versão ^3.0.0, com tudo isso faremos remoções e modificações, sendo as modificações uma parte mais chatinha de colocar nossa logica na aplicação seguindo nossas regras.

app.js

Este e o arquivo principal, ele é o responsável por conectar tudo que usaremos, nas pastas views, controller e os models.


FAQs

  • Como adicionar um item no database?
    • Vá para pagina Home
    • Insira seus dados corretamente no formulário
    • Clique no botão Submit
    • Voa lá🎉, seus dados ja podem ser consultados na rota /data
  • Como faço para editar um item no database?
    • Clique no item Data na navbar
    • Selecione o item que queira modificar
    • Clique no botão Editar
    • E agora você pode modificar o que quiser
    • Clique no botão confirmar e pronto o item desejado ja foi modificado 😉
  • Como faço para deletar um item no database?
    • Clique no item Data na navbar
    • Selecione o item que queira deletar
    • Clique no botão Deletar
    • ATENÇÃO❗❗❗ O ITEM QUANDO DELETADO NÃO PODE MAIS SER RECUPERADO

Ferramentas usadas: