An Interest In:
Web News this Week
- March 22, 2024
- March 21, 2024
- March 20, 2024
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
Model - Uma breve introduo
Aviso
Arquitetura de Software um tema bem terico e de certa forma abstrato (ao menos para mim), ento os tpicos abordados nesse artigo so a minha interpretao pessoal do conceito geral, sendo que essa interpretao baseada na forma que utilizo esses conceitos em meus projetos.
Model
O que ?
a camada do Software responsvel pelo acesso, armazenamento e manipulao de qualquer informao, em qualquer tipo de entidade de armazenamento.
Essa entidade pode ser um arquivo de texto, memria, ou um banco de dados.
O que faz?
Como vimos em sua definio, a camada Model abstrai completamente os detalhes de acesso, manipulao e armazenamento, fornecendo recursos de fcil utilizao para as outras camadas do Software.
Alm disso, essa camada tambm responsvel pelo mapeamento dos dados na entidade que estamos usando para armazenamento.
"Sintaxe"
Por ser um conceito de arquitetura de Software, a camada Model no segue uma sintaxe padro, porm h algumas regras que podemos respeitar, so elas:
Todos os recursos contidos na camada Model devem ser desacoplados do resto da aplicao.
Devemos definir e manipular nossos dados nesta camada, exportando apenas uma abstrao para o resto da aplicao
Model com MySQL
O que ?
Trata-se da conexo entre a camada Model e o banco de dados MySQL. Faremos essa conexo utilizando o pacote mysql2
, para instal-lo utilizamos o comando:
npm i mysql2
Como fazer?
Com o pacote instalado s precisamos definir a conexo utilizando o mtodo .createPool()
, disponibilizado pelo prprio pacote. Esse mtodo dever receber um objeto contendo todas as informaes da conexo como: host, usurio, senha e o banco de dados que iremos trabalhar.
const mysql = require('mysql2/promise');const connection = mysql.createPool({ host: 'localhost', user: 'root', password: 'myPassword123', database: 'my_database',});module.exports = connection;
* OBSERVAO: Podemos criar uma conexo atravs do mtodo .connect()
, porm essa conexo dever ser gerenciada manualmente por ns.
Queries no Model
Query constante
O que ?
So Queries que no recebem parmetros externos, ou seja, a Query sempre a mesma.
Sintaxe
Para executarmos esse tipo de Query utilizamos o mtodo .execute()
no objeto de conexo criado com o DB, recebendo por parmetro a Query que queremos executar em formato de string.
Uma peculiaridade do mtodo .execute()
, o fato dele retornar os resultados em um Array, onde os dados retornados da nossa Query ficam na primeira posio e na segunda ficam armazenados MetaDados da execuo da Query.
const connection = require('./connection');const [result] = await connection.execute('SELECT * FROM myDB');
Query dinmica
O que ?
So Queries que recebem algum tipo de parmetro no momento de sua execuo, as deixando dinmicas, esse parmetro pode ser um filtro para pesquisa, colunas a serem selecionadas ou qualquer outra "personalizao" que desejarmos fazer.
Sintaxe
Para interpolarmos os diferentes parmetros nossa Query utilizamos uma sintaxe especial do mysql2, com o mtodo .execute()
, ela consiste na utilizao de marcaes, feitas atravs de pontos de interrogao, e definio dos parmetros ordenadamente dentro de um Array.
Em outras palavras, colocamos pontos de interrogao onde iremos passar os parmetros e dentro do Array passamos essas informaes, sempre respeitando a ordem.
const connection = require('./connection');const [result] = await connection.execute( 'SELECT * FROM myDB WHERE id = ?', [2]);
* OBSERVAO: Podemos utilizar outras formas de interpolao, como template literals ou concatenao, porm isso deixar nossa aplicao extremamente vulnervel a ataques de SQL Injection.
Original Link: https://dev.to/gabrielhsilvestre/model-uma-breve-introducao-4gch
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To