Giter Site home page Giter Site logo

andrrff / c.r.u.d Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 322 KB

Uma API REST capaz de realizar o C.R.U.D. seguindo os padrões atuais, manipulando os valores de entrada, processando e retornando os dados, mensagens e status coerentes.

Home Page: https://crud-andrrff.herokuapp.com/

License: MIT License

JavaScript 59.14% EJS 40.86%
restful-api crud crud-application mongodb mongoose javascript expressjs mvc heroku heroku-deployment

c.r.u.d's Introduction

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:


c.r.u.d's People

Contributors

andrrff avatar

Stargazers

 avatar  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.