Skip to content

Instantly share code, notes, and snippets.

@luizpicolo
Last active July 28, 2023 21:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save luizpicolo/3e7251053eb4b00e432222de3bf63799 to your computer and use it in GitHub Desktop.
Save luizpicolo/3e7251053eb4b00e432222de3bf63799 to your computer and use it in GitHub Desktop.
Criando projetos com Sequelize

Criando projeto e configurando o Sequelize

No terminal execute:

iniciando projeto.

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

Criar um seed

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, {});

Semear dados no banco

npx sequelize db:seed:all

Adicionando Express

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 %>
<% }) %>

Inicie o projeto

npm start

Para deletar todos os dados e iniciar do Zero

npx sequelize db:drop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment