https://github.com/4lessandrodev/sequelize
NodeJS, JavaScript, Express: Passsos para criar um projeto padrão NodeJS com sequelize
https://github.com/4lessandrodev/sequelize
Last synced: 7 months ago
JSON representation
NodeJS, JavaScript, Express: Passsos para criar um projeto padrão NodeJS com sequelize
- Host: GitHub
- URL: https://github.com/4lessandrodev/sequelize
- Owner: 4lessandrodev
- Created: 2020-05-06T20:04:09.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-08-12T09:54:31.000Z (over 4 years ago)
- Last Synced: 2025-04-24T10:42:19.753Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 229 KB
- Stars: 3
- Watchers: 1
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Criando um projeto padrão com sequelize
## Passos
## Siga:
* Iniciar o projeto express-generator na pasta local
```
express nome_do_projeto --ejs
```
* Instalar as dependências padrão do express generator
```
npm install
```
* Agora instalar as dependências que iremos utilizar
```
npm install express mysql2 sequelize dotenv
```
```
npm install nodemon sequelize-cli -D
```
* criar arquivos na raiz do projeto .env e .gitignore
no arquivo .env colocar as variáveis com os valores de acordo com seu ambiente Dev
```
DB_USER=
DB_PASS=
DB_NAME=
DB_HOST=127.0.0.1
DB_PORT=3306
```
* No arquivo .gitignore ignorar os seguintes arquivos
```
/node_modules
.env
```
* Criar as seguintes pastas na raiz do projeto
```
models
controllers
config
```
* dentro da pasta config criar o arquivo database.js e colocar o código de conexão do banco
```
require('dotenv').config()
```
```
module.exports = {
username:process.env.DB_USER,
password:process.env.DB_PASS,
database:process.env.DB_NAME,
host:process.env.DB_HOST,
dialect:"mysql"
}
```
* Dentro da pasta models criar um arquivo chamado index.js
* Colocar as configurações conforme abaixo:
* Ou você pode usar o comando:
```
npx sequelize init:models
```
> Obs.: Se você utilizar o comando lembrar de corrigir as linhas "const config = require('../config/database');" e
> "sequelize = new Sequelize(process.env[config.use_env_variable], config);" Tirando o "[env]" e passando o caminho de sua conexão com banco de dados
```
'use strict';
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require('../config/database');
const db = {};
```
```
let sequelize;
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
sequelize = new Sequelize(config.database, config.username, config.password, config);
}
fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = sequelize['import'](path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
```
* Na Raiz do projeto criar o arquivo .sequelizerc e colocar o seguinte código
```
const path = require("path");
module.exports = {
config: path.resolve("config","database.js"),
models: path.resolve("models"),
}
```
* Dentro de models criar um arquivo js
> Em nosso exemplo vamos criar um arquivo de Usuario.js
* Dentro de Usuario.js usar o código abaixo como modelo
> Lembrando que devemos ter essa tabela em nosso banco de dados
------------------------------------------------------------------------------------------
```
const Usuario = (sequelize, DataTypes) => {
let usuario = sequelize.define(
'Usuario',
{
id_usuario: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: true
},
nome: {
type: DataTypes.STRING,
allowNull: true
},
email: {
type: DataTypes.STRING,
allowNull: true
},
senha: {
type: DataTypes.STRING,
allowNull: true
}
},
{
tableName: "usuario",
timestamps: false
}
)
usuario.associate = (models) => {
//usuario.hasMany(models.Endereco, { foreignKey: 'fk_usuarios', as: 'enderecos' });
//usuario.hasMany(models.Pedido, { foreignKey: 'fk_usuarios', as: 'pedidos' });
};
return usuario;
}
module.exports = Usuario;
```
* Para rodar o teste
* Criar uma pasta na raiz do projeto chamada testes;
* Dentro desta criar um arquivo chamado usuarioTeste.js e colocar o seguinte código
```
const { sequelize, Usuario } = require('../models');
Usuario.findAll().then(
data => {
console.log(data.map( u => u.toJSON()));
sequelize.close();
}
)
```
* Para rodar o teste basta executar
* node testes/usuarioTeste.js
Referências de código padrão:
* [CODIGO]https://github.com/ALESSANDROLMENEZES/sequelize