MVC, MVT e Template Engine - #11 Models e Controllers no JS
01/07/2020Nesse tutorial seguiremos com o MVC no Javascript aprendendo a utilizar o nosso model e o controller do nosso sistema.
Model e Controller no Javascript
config.json
No arquivo de configuração vamos indicar o caminho do nosso banco sqlite. Como ele está na raiz podemos referenciá-lo diretamente assim:
"development": {
"dialect": "sqlite",
"storage": "db.sqlite3"
},
"urlRoot":"http://localhost:3000/"
Posteriormente vamos criar o nosso model utilizando o comando do Sequelize no terminal:
npx sequelize-cli model:generate --name User --attributes name:string,age:integer
npx sequelize-cli model:generate --name Product --attributes product:string,value:float,userId:integer
models/user.js
User.hasMany(models.Product);
models/product.js
Product.belongsTo(models.User);
migrations/create-product
Precisamos implementar a nossa chave estrangeira:
userId: {
type: Sequelize.INTEGER,
references:{
model: 'users',
key:'id'
},
onUpdate:'cascade',
onDelete:'cascade'
},
Em seguida vamos rodar o comando pra migrar o nosso banco:
npx sequelize-cli db:migrate
Controller.js
Vamos criar duas rotas: uma rota inicial para criação de um dado qualquer no nosso banco e uma rota para selecionar esses dados:
app.get('/',async(req,res)=>{
let response=await models.User.create({
name:'Thiago',
age:18,
createdAt:new Date(),
updatedAt: new Date()
});
console.log(response);
//res.send(config.urlRoot);
});
app.get('/data',async(req,res)=>{
let response=await models.User.findAll({
raw:true,
include:[{all:true}]
});
res.send(response);
});
Para exibir no navegador (http://localhost:3000), não esqueça de iniciar o servidor no terminal:
nodemon Controller
Por hoje é só! Sucesso nos códigos e na vida!
Precisa de um professor? Suporte premium já: webdesignemfoco@gmail.com