Git Product home page Git Product logo

desafio-fc-nginx-node's Introduction

🆖✖🟩 Dasafio Nginx com Node.js

Enuciado do desafio

Nesse desafio você colocará em prática o que aprendemos em relação a utilização do nginx como proxy reverso. A idéia principal é que quando um usuário acesse o nginx, o mesmo fará uma chamada em nossa aplicação node.js. Essa aplicação por sua vez adicionará um registro em nosso banco de dados mysql, cadastrando um nome na tabela people.

O retorno da aplicação node.js para o nginx deverá ser:

<h1>Full Cycle Rocks!</h1>

  • Lista de nomes cadastrada no banco de dados.

Gere o docker-compose de uma forma que basta apenas rodarmos: docker-compose up -d que tudo deverá estar funcionando e disponível na porta: 8080.

Suba tudo em um repositório e faça a entrega.

  • A linguagem de programação para este desafio é Node/JavaScript.

Explicação sobre o projeto

Esse projeto consiste na geração de 3 imagens docker, uma para o banco de dados, baseado em My SQL, uma para a API, que é escrita em NodeJS, e outra para o nginx que serve como proxy reverso para disponibilização de comunicação com a API.

O fluxo de comunicação entre os contêineres é da seguinte forma:

sequenceDiagram
    participant client
    participant nginx
    participant app
    participant db
    client ->>+ nginx: request to localhost:8080
    nginx ->>+ app: forward the request
    Note right of app: App generate names and <br> insert in database
    app ->>+ db: insert name and <br> gets database names
    db ->>- app: list names
    app ->>- nginx: response with names
    nginx ->>- client: request response
Loading

Foi adicionada uma lógica para a geração de alguns nomes de forma randômica, assim serão inserido no banco de dados alguns nomes diferentes.

Comando subir os contêineres

Esse projeto possui um arquivo docker-compose.yaml que defini as configurações das imagens das aplicações. Para subir os contêiners basta executar o comando abaixo:

docker-compose up -d

Após a subida dos contêiners e a realização de conexão entre a API e o banco de dados, pode ser chamado o endereço: http:localhost:8080 que a API irá responder com os nomes que foram inseridos no banco de dados. Como mostra a imagem abaixo:

alt text

A cada requisição à API será inserido um novo nome no banco e retornado a lista para o cliente que fez a requisição.

desafio-fc-nginx-node's People

Contributors

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