Skip to content

gustavoSoriano/Nodevil

Repository files navigation

NodeJs estruturado em MVC com implementação para Socket.io, MongoDb, Sequilize e GraphQl

Estrutura de diretórios

Diretório Descrição
App Diretório root para estrutura mvc, middleware e rotas
Config Diretório de configuração de banco, porta, secret, app
Test Diretório de TDD
Routes Módulos de rota de api ou web templates
Controllers Onde ficam as controllers da aplicação
Models/mongoose Schemas para MongoDb
Models/sequelize Models, Migrations e Seeders do sequelize
Views Templates ejs
Middleware Diretório de Middlewares
GraphQl Diretório recursos do graphql api

Como iniciar projeto

npm i       (Instalação de dependências)
npm link    (Criar um link simbolico para o arquivo make.js)
npm run dev (Inicia a aplicação com nodemon)
npm start   (Inicia a aplicação em produção)

Abra o browser no endereço: http://localhost:9000

Arquivo de configuração

  • Caso não crie a chave mongodb, não haverá conexão com mongodb
  • Caso não crie a chave sequelizedb, não haverá conexão com sequelize
    /config/config.json
    {
        "app_port": 9005,
        "secret": "3428ghne8wngbehvj458543",
        "expiresIn": "3600s",
        "mongodb":{
            "uri":"mongodb://localhost/",
            "db_name": "node-mvc"
        },
        "sequelizedb":{
            "username": "root",
            "password": "password",
            "database": "nodejs",
            "host": "127.0.0.1",
            "dialect": "mysql",
            "operatorsAliases": false
        },
        "debug": {
            "mongoose":false,
            "log":true,
            "request_log":true
        }
    }

Documentação GraphQl

Abra o browser no endereço: http://localhost:9000/graphql
Documentação disponível clicando na aba "Docs"

Como iniciar container docker

sudo ./docker_run.sh

Cors Middleware

/config/express.js

Comandos make

Exemplos: 

- node make controller:veiculo

- node make model[mongoose]:veiculo
- node make model[sequelize]:veiculo

- node make middleware:veiculo

- node make crud[mongoose]:veiculo
- node make crud[sequelize]:veiculo

- node make generate:key

Instalação do Socket.io

Execução do comando make
- node make install:socket

Testes unitários

Execução dos testes:
mocha

Comandos do Sequelize

Você pode executar comandos sequelize desde que utilizando o parâmetro --env sequelizedb. Ex:

  • npx sequelize-cli model:generate --name Animal --attributes firstName:string, year:integer --env sequelizedb
  • npx sequelize-cli db:migrate --env sequelizedb
  • npx sequelize-cli db:seed:all --env sequelizedb
  • npx sequelize-cli db:migrate:undo --env sequelizedb

Obs: Mais comandos disponíveis em: sequelize.org

Colaboradores

Desenvolvedor Thumbnail
Soriano
David
Lucas Galhardo