NodeJs estruturado em MVC com implementação para Socket.io, MongoDb, Sequilize e GraphQl
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 |
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
- 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
}
}
Abra o browser no endereço: http://localhost:9000/graphql
Documentação disponível clicando na aba "Docs"
sudo ./docker_run.sh
/config/express.js
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
Execução do comando make
- node make install:socket
Execução dos testes:
mocha
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
Desenvolvedor | Thumbnail |
---|---|
Soriano | |
David | |
Lucas Galhardo |