#################################################################################################### 01. O que é um SQL Query Builder: Nessa aula aprenderemos o que é um SQL Query Builder e quais as vantagens de utilizá-lo em relação a um banco de dados específico. #################################################################################################### 02. Instalando Knex.js: Nessa aula aprenderemos como instalar o Query Builder **Knex.js** Instalação: [Knex.js - A SQL Query Builder for Javascript](http://knexjs.org/#Installation-node) [Commit: Instalando Knex.js](https://github.com/rocketseat-education/explorer-stage-08/tree/33570660e24e39cecc6ec694b80de3da58533e5d) #################################################################################################### 03. Configurando o Knex.js: Nessa aula aprenderemos como configurar o Knex.js para que ele possa se comunicar com o nosso banco de dados SQLite. [Commit: Configurando o Knex.js](https://github.com/rocketseat-education/explorer-stage-08/tree/1b6611f5cf21cbec2933398ad510c01698e6fb79) #################################################################################################### 04. Conceito de Migrations: Nessa aula aprenderemos os conceitos de Migrations suas vantagens e seus métodos (UP e DOWN). #################################################################################################### 05. Migrations para Notes: Nessa aula criamos a migration do projeto utilizando Knex e executaremos ela para que as tabelas sejam inseridas no banco de dados. [Commit: Migrations para Notes](https://github.com/rocketseat-education/explorer-stage-08/tree/e2d8a9807be5abd9a4e56fb8acbda30a743403a2) #################################################################################################### 06. NPM vs NPX: Nessa aula entenderemos a diferença entre usar o NPM e o NPX. Basicamente o NPM é utilizado para instalar pacotes, enquanto o NPX é utilizado para executar pacotes. #################################################################################################### 07. Primary key e Foreign key: Nessa aula entenderemos a diferença entre chave primária e chave estrangeira. A chave primária possui um id único com ela na tabela, já a chave estrangeira faz a referência desse id da chave primária em outras tabelas. #################################################################################################### 08. Cardinalidade: Nessa aula aprenderemos o que é Cardinalidade, ou seja a frequência que uma tabela se relaciona com a outra. Para isso, vamos visualizar a estrutura do nosso banco de dados. ![cardinalidade](https://storage.googleapis.com/golden-wind/explorer/description-assets/nivel-08/cardinalidade.png) #################################################################################################### 09. Migrations para Link e Tag: Nessa aula criaremos mais duas migrations em nosso projeto que proverá as tabelas `link` e `tags` em nosso banco de dados. [Commit: Migrations para Link e Tag](https://github.com/rocketseat-education/explorer-stage-08/tree/60153499a55f814a4513a3aca0d0424777a4dda3) #################################################################################################### 10. Cadastrando nota: Nessa aula criaremos uma nova Migration em nosso projeto, para conseguirmos cadastrar as notas diretamente da nossa API. [Commit: Cadastrando nota](https://github.com/rocketseat-education/explorer-stage-08/tree/d319d97cd899bdc0c19fbea5de4c0e9d192d4980) #################################################################################################### 11. Exibindo nota: Nessa aula criaremos a rota para exibir a nota que o usuário cadastrou no Rocketnotes [Commit: Exibindo nota](https://github.com/rocketseat-education/explorer-stage-08/tree/88cc28232a5494cae28c6e8c87ddc457c6be40e2) #################################################################################################### 12. Deletando nota: Nessa aula criaremos a rota para deletar a nota em modo cascata em nosso banco de dados. [Commit: Deletando nota](https://github.com/rocketseat-education/explorer-stage-08/tree/ca73fe1ecd0e6ed03169a8f5b018e3873fe1ae1b) #################################################################################################### 13. Listando notas: Nessa aula criaremos a rota para listar as notas cadastradas em nosso banco de dados incluindo as tags e links. [Commit: Listando notas](https://github.com/rocketseat-education/explorer-stage-08/tree/7ff222f0fd49050f1f1bf4b78d4f2088ea76def0) #################################################################################################### 14. Operador Like: Nessa aula aprenderemos como utilizar o operador `like` para buscar valores que contenham partes de uma palavra. Exemplo Registro no banco: Introdução Nodejs Pesquisa: Nodejs Resultado: Introdução Nodejs [Commit: Operador Like](https://github.com/rocketseat-education/explorer-stage-08/tree/7243cadde9b17f94638109241a917ef959676fa3) #################################################################################################### 15. Filtro WhereIn: Nessa aula utilizaremos o filtro `WhereIn` para filtrar realmente o que é necessário em nossa busca no banco de dados. [Commit: Filtro WhereIn](https://github.com/rocketseat-education/explorer-stage-08/tree/605849febcd6469c75bf1f55fafa72daaa093f34) #################################################################################################### 16. Conceito de Inner Join: Nessa aula aprenderemos sobre Inner Join para fazer a junção de duas tabelas e trazer um resultado em conjunto desses dados. #################################################################################################### 17. Aplicando Inner Join: Nessa aula aplicaremos o Inner Join dentro do nosso projeto unificando as tabelas *notes* e *tags*. [Commit: Aplicando Inner Join](https://github.com/rocketseat-education/explorer-stage-08/tree/cfbc0065c0abd132c6fe68137badd6909a728ec5) #################################################################################################### 18. Map e Filter: Nessa aula aprenderemos a utilizar a função `map` e `filter` utilizando a ferramenta PlayCode. PlayCode: [PlayCode - Javascript Playground](https://playcode.io/) Coleção de dados: ```jsx const tags=[ {id: 1, name: "node", note_id:1}, {id: 2, name: "express", note_id:1}, {id: 3, name: "react", note_id:1}, {id: 4, name: "javascript", note_id:2}, {id: 5, name: "frontend", note_id:2}, ]; ``` #################################################################################################### 19. Obtendo tags da nota: Nessa aula aplicaremos os conceitos vistos na aula anterior em nosso projeto. [Commit: Obtendo tags da nota](https://github.com/rocketseat-education/explorer-stage-08/tree/d11908e2a7fae587119bf45385550aa0c399eeeb) #################################################################################################### 20. Listando Tags: Nessa aula faremos um novo Controller para listar todas as tags do usuário. [Commit: Listando Tags](https://github.com/rocketseat-education/explorer-stage-08/tree/7b1d271020bf9942e7275549da1c948c188f6106) #################################################################################################### 21. Testando tudo: Nessa aula faremos todos os testes necessários para verificar se o nosso projeto está funcionando tudo corretamente. [Commit: Testando tudo](https://github.com/rocketseat-education/explorer-stage-08/tree/28b037e42a0210dc7f4c61af90e5520091021f13) #################################################################################################### 22. Conclusão: Nessa aula faremos a revisão de tudo que foi visto até aqui. #################################################################################################### 01. O que é um SQL Query Builder: Nessa aula aprenderemos o que é um SQL Query Builder e quais as vantagens de utilizá-lo em relação a um banco de dados específico. #################################################################################################### 02. Instalando Knex.js: Nessa aula aprenderemos como instalar o Query Builder **Knex.js** Instalação: [Knex.js - A SQL Query Builder for Javascript](http://knexjs.org/#Installation-node) [Commit: Instalando Knex.js](https://github.com/rocketseat-education/explorer-stage-08/tree/33570660e24e39cecc6ec694b80de3da58533e5d) #################################################################################################### 03. Configurando o Knex.js: Nessa aula aprenderemos como configurar o Knex.js para que ele possa se comunicar com o nosso banco de dados SQLite. [Commit: Configurando o Knex.js](https://github.com/rocketseat-education/explorer-stage-08/tree/1b6611f5cf21cbec2933398ad510c01698e6fb79) #################################################################################################### 04. Conceito de Migrations: Nessa aula aprenderemos os conceitos de Migrations suas vantagens e seus métodos (UP e DOWN). #################################################################################################### 05. Migrations para Notes: Nessa aula criamos a migration do projeto utilizando Knex e executaremos ela para que as tabelas sejam inseridas no banco de dados. [Commit: Migrations para Notes](https://github.com/rocketseat-education/explorer-stage-08/tree/e2d8a9807be5abd9a4e56fb8acbda30a743403a2) #################################################################################################### 06. NPM vs NPX: Nessa aula entenderemos a diferença entre usar o NPM e o NPX. Basicamente o NPM é utilizado para instalar pacotes, enquanto o NPX é utilizado para executar pacotes. #################################################################################################### 07. Primary key e Foreign key: Nessa aula entenderemos a diferença entre chave primária e chave estrangeira. A chave primária possui um id único com ela na tabela, já a chave estrangeira faz a referência desse id da chave primária em outras tabelas. #################################################################################################### 08. Cardinalidade: Nessa aula aprenderemos o que é Cardinalidade, ou seja a frequência que uma tabela se relaciona com a outra. Para isso, vamos visualizar a estrutura do nosso banco de dados. ![cardinalidade](https://storage.googleapis.com/golden-wind/explorer/description-assets/nivel-08/cardinalidade.png) #################################################################################################### 09. Migrations para Link e Tag: Nessa aula criaremos mais duas migrations em nosso projeto que proverá as tabelas `link` e `tags` em nosso banco de dados. [Commit: Migrations para Link e Tag](https://github.com/rocketseat-education/explorer-stage-08/tree/60153499a55f814a4513a3aca0d0424777a4dda3) #################################################################################################### 10. Cadastrando nota: Nessa aula criaremos uma nova Migration em nosso projeto, para conseguirmos cadastrar as notas diretamente da nossa API. [Commit: Cadastrando nota](https://github.com/rocketseat-education/explorer-stage-08/tree/d319d97cd899bdc0c19fbea5de4c0e9d192d4980) #################################################################################################### 11. Exibindo nota: Nessa aula criaremos a rota para exibir a nota que o usuário cadastrou no Rocketnotes [Commit: Exibindo nota](https://github.com/rocketseat-education/explorer-stage-08/tree/88cc28232a5494cae28c6e8c87ddc457c6be40e2) #################################################################################################### 12. Deletando nota: Nessa aula criaremos a rota para deletar a nota em modo cascata em nosso banco de dados. [Commit: Deletando nota](https://github.com/rocketseat-education/explorer-stage-08/tree/ca73fe1ecd0e6ed03169a8f5b018e3873fe1ae1b) #################################################################################################### 13. Listando notas: Nessa aula criaremos a rota para listar as notas cadastradas em nosso banco de dados incluindo as tags e links. [Commit: Listando notas](https://github.com/rocketseat-education/explorer-stage-08/tree/7ff222f0fd49050f1f1bf4b78d4f2088ea76def0) #################################################################################################### 14. Operador Like: Nessa aula aprenderemos como utilizar o operador `like` para buscar valores que contenham partes de uma palavra. Exemplo Registro no banco: Introdução Nodejs Pesquisa: Nodejs Resultado: Introdução Nodejs [Commit: Operador Like](https://github.com/rocketseat-education/explorer-stage-08/tree/7243cadde9b17f94638109241a917ef959676fa3) #################################################################################################### 15. Filtro WhereIn: Nessa aula utilizaremos o filtro `WhereIn` para filtrar realmente o que é necessário em nossa busca no banco de dados. [Commit: Filtro WhereIn](https://github.com/rocketseat-education/explorer-stage-08/tree/605849febcd6469c75bf1f55fafa72daaa093f34) #################################################################################################### 16. Conceito de Inner Join: Nessa aula aprenderemos sobre Inner Join para fazer a junção de duas tabelas e trazer um resultado em conjunto desses dados. #################################################################################################### 17. Aplicando Inner Join: Nessa aula aplicaremos o Inner Join dentro do nosso projeto unificando as tabelas *notes* e *tags*. [Commit: Aplicando Inner Join](https://github.com/rocketseat-education/explorer-stage-08/tree/cfbc0065c0abd132c6fe68137badd6909a728ec5) #################################################################################################### 18. Map e Filter: Nessa aula aprenderemos a utilizar a função `map` e `filter` utilizando a ferramenta PlayCode. PlayCode: [PlayCode - Javascript Playground](https://playcode.io/) Coleção de dados: ```jsx const tags=[ {id: 1, name: "node", note_id:1}, {id: 2, name: "express", note_id:1}, {id: 3, name: "react", note_id:1}, {id: 4, name: "javascript", note_id:2}, {id: 5, name: "frontend", note_id:2}, ]; ``` #################################################################################################### 19. Obtendo tags da nota: Nessa aula aplicaremos os conceitos vistos na aula anterior em nosso projeto. [Commit: Obtendo tags da nota](https://github.com/rocketseat-education/explorer-stage-08/tree/d11908e2a7fae587119bf45385550aa0c399eeeb) #################################################################################################### 20. Listando Tags: Nessa aula faremos um novo Controller para listar todas as tags do usuário. [Commit: Listando Tags](https://github.com/rocketseat-education/explorer-stage-08/tree/7b1d271020bf9942e7275549da1c948c188f6106) #################################################################################################### 21. Testando tudo: Nessa aula faremos todos os testes necessários para verificar se o nosso projeto está funcionando tudo corretamente. [Commit: Testando tudo](https://github.com/rocketseat-education/explorer-stage-08/tree/28b037e42a0210dc7f4c61af90e5520091021f13) #################################################################################################### 22. Conclusão: Nessa aula faremos a revisão de tudo que foi visto até aqui. #################################################################################################### 01. O que é um SQL Query Builder: Nessa aula aprenderemos o que é um SQL Query Builder e quais as vantagens de utilizá-lo em relação a um banco de dados específico. #################################################################################################### 02. Instalando Knex.js: Nessa aula aprenderemos como instalar o Query Builder **Knex.js** Instalação: [Knex.js - A SQL Query Builder for Javascript](http://knexjs.org/#Installation-node) [Commit: Instalando Knex.js](https://github.com/rocketseat-education/explorer-stage-08/tree/33570660e24e39cecc6ec694b80de3da58533e5d) #################################################################################################### 03. Configurando o Knex.js: Nessa aula aprenderemos como configurar o Knex.js para que ele possa se comunicar com o nosso banco de dados SQLite. [Commit: Configurando o Knex.js](https://github.com/rocketseat-education/explorer-stage-08/tree/1b6611f5cf21cbec2933398ad510c01698e6fb79) #################################################################################################### 04. Conceito de Migrations: Nessa aula aprenderemos os conceitos de Migrations suas vantagens e seus métodos (UP e DOWN). #################################################################################################### 05. Migrations para Notes: Nessa aula criamos a migration do projeto utilizando Knex e executaremos ela para que as tabelas sejam inseridas no banco de dados. [Commit: Migrations para Notes](https://github.com/rocketseat-education/explorer-stage-08/tree/e2d8a9807be5abd9a4e56fb8acbda30a743403a2) #################################################################################################### 06. NPM vs NPX: Nessa aula entenderemos a diferença entre usar o NPM e o NPX. Basicamente o NPM é utilizado para instalar pacotes, enquanto o NPX é utilizado para executar pacotes. #################################################################################################### 07. Primary key e Foreign key: Nessa aula entenderemos a diferença entre chave primária e chave estrangeira. A chave primária possui um id único com ela na tabela, já a chave estrangeira faz a referência desse id da chave primária em outras tabelas. #################################################################################################### 08. Cardinalidade: Nessa aula aprenderemos o que é Cardinalidade, ou seja a frequência que uma tabela se relaciona com a outra. Para isso, vamos visualizar a estrutura do nosso banco de dados. ![cardinalidade](https://storage.googleapis.com/golden-wind/explorer/description-assets/nivel-08/cardinalidade.png) #################################################################################################### 09. Migrations para Link e Tag: Nessa aula criaremos mais duas migrations em nosso projeto que proverá as tabelas `link` e `tags` em nosso banco de dados. [Commit: Migrations para Link e Tag](https://github.com/rocketseat-education/explorer-stage-08/tree/60153499a55f814a4513a3aca0d0424777a4dda3) #################################################################################################### 10. Cadastrando nota: Nessa aula criaremos uma nova Migration em nosso projeto, para conseguirmos cadastrar as notas diretamente da nossa API. [Commit: Cadastrando nota](https://github.com/rocketseat-education/explorer-stage-08/tree/d319d97cd899bdc0c19fbea5de4c0e9d192d4980) #################################################################################################### 11. Exibindo nota: Nessa aula criaremos a rota para exibir a nota que o usuário cadastrou no Rocketnotes [Commit: Exibindo nota](https://github.com/rocketseat-education/explorer-stage-08/tree/88cc28232a5494cae28c6e8c87ddc457c6be40e2) #################################################################################################### 12. Deletando nota: Nessa aula criaremos a rota para deletar a nota em modo cascata em nosso banco de dados. [Commit: Deletando nota](https://github.com/rocketseat-education/explorer-stage-08/tree/ca73fe1ecd0e6ed03169a8f5b018e3873fe1ae1b) #################################################################################################### 13. Listando notas: Nessa aula criaremos a rota para listar as notas cadastradas em nosso banco de dados incluindo as tags e links. [Commit: Listando notas](https://github.com/rocketseat-education/explorer-stage-08/tree/7ff222f0fd49050f1f1bf4b78d4f2088ea76def0) #################################################################################################### 14. Operador Like: Nessa aula aprenderemos como utilizar o operador `like` para buscar valores que contenham partes de uma palavra. Exemplo Registro no banco: Introdução Nodejs Pesquisa: Nodejs Resultado: Introdução Nodejs [Commit: Operador Like](https://github.com/rocketseat-education/explorer-stage-08/tree/7243cadde9b17f94638109241a917ef959676fa3) #################################################################################################### 15. Filtro WhereIn: Nessa aula utilizaremos o filtro `WhereIn` para filtrar realmente o que é necessário em nossa busca no banco de dados. [Commit: Filtro WhereIn](https://github.com/rocketseat-education/explorer-stage-08/tree/605849febcd6469c75bf1f55fafa72daaa093f34) #################################################################################################### 16. Conceito de Inner Join: Nessa aula aprenderemos sobre Inner Join para fazer a junção de duas tabelas e trazer um resultado em conjunto desses dados. #################################################################################################### 17. Aplicando Inner Join: Nessa aula aplicaremos o Inner Join dentro do nosso projeto unificando as tabelas *notes* e *tags*. [Commit: Aplicando Inner Join](https://github.com/rocketseat-education/explorer-stage-08/tree/cfbc0065c0abd132c6fe68137badd6909a728ec5) #################################################################################################### 18. Map e Filter: Nessa aula aprenderemos a utilizar a função `map` e `filter` utilizando a ferramenta PlayCode. PlayCode: [PlayCode - Javascript Playground](https://playcode.io/) Coleção de dados: ```jsx const tags=[ {id: 1, name: "node", note_id:1}, {id: 2, name: "express", note_id:1}, {id: 3, name: "react", note_id:1}, {id: 4, name: "javascript", note_id:2}, {id: 5, name: "frontend", note_id:2}, ]; ``` #################################################################################################### 19. Obtendo tags da nota: Nessa aula aplicaremos os conceitos vistos na aula anterior em nosso projeto. [Commit: Obtendo tags da nota](https://github.com/rocketseat-education/explorer-stage-08/tree/d11908e2a7fae587119bf45385550aa0c399eeeb) #################################################################################################### 20. Listando Tags: Nessa aula faremos um novo Controller para listar todas as tags do usuário. [Commit: Listando Tags](https://github.com/rocketseat-education/explorer-stage-08/tree/7b1d271020bf9942e7275549da1c948c188f6106) #################################################################################################### 21. Testando tudo: Nessa aula faremos todos os testes necessários para verificar se o nosso projeto está funcionando tudo corretamente. [Commit: Testando tudo](https://github.com/rocketseat-education/explorer-stage-08/tree/28b037e42a0210dc7f4c61af90e5520091021f13) #################################################################################################### 22. Conclusão: Nessa aula faremos a revisão de tudo que foi visto até aqui.