Criando projeto e configurando o Sequelize
npm init -y
npm i sequelize express ejs pg --save
npm i sequelize-cli nodemon --save-dev
Iniciando projeto com Sequelize
npx sequelize init
Adicionado modelo (no caso o modelo com nome usuario)
npx sequelize model:create --name usuario --attributes nome:string
Modifique os atributos createdAt
e updatedAt
da migração criada
createdAt: {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.fn('NOW')
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.fn('NOW')
}
Modifique as configuração de acesso ao banco
config/config.json
Persistir modelo no banco
npx sequelize db:create
npx sequelize db:migrate
npx sequelize seed:generate --name adicionar-usuarios
Altere o conteúdo do método up para
await queryInterface.bulkInsert('usuarios', [{
nome: 'John Doe'
}], {});
Altere o conteúdo do método down para
await queryInterface.bulkDelete('usuarios', null, {});
npx sequelize db:seed:all
Crie um arquivos index.js
na RAIZ do projeto e adicione o seguinte código
const express = require('express');
const path = require('path');
const { usuario } = require('./models');
const app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.json());
app.use(express.urlencoded({ extended: true}));
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', async function(req, res){
var usuarios = await usuario.findAll();
res.render('index', { usuarios });
})
app.listen(3000, function() {
console.log('App de Exemplo escutando na porta 3000!')
});
Mofique o atributo script
no pachage.json
"scripts": {
"start": "nodemon index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
Adicionando as views. Crie um diretírio views
na raiz e, dentro dele, crie um arquivo index.ejs
e adicione o seguinte código no body
<% usuarios.forEach((usuario) => { %>
<%= usuario.nome %>
<% }) %>
npm start
Para deletar todos os dados e iniciar do Zero
npx sequelize db:drop