Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

CRUD NodeJS - #10 Modularização e Conclusão

07/10/2019

Nesse tutorial falaremos um pouquinho mais modularização no Javascript com NodeJS e como instalar um domínio próprio no Heroku.

Modularização

Para organizar de forma mais eficiente nosso sistema, o NodJS nos permite criar módulos personalizados para o nosso app. No caso, separaremos em um módulo específico todas as nossas configurações de banco de dados. Para isso, criaremos dentro da pasta node_modules a pasta crud que ficará responsável por todas as configurações do nosso banco de dados.

Veja abaixo como ficou nosso código:

const mysql=require('mysql');

class ClassCrud{

    constructor()
    {
        this.sql=mysql.createPool({
            user: "root",
            password: "",
            host: "localhost",
            database: "nodejs"
        });
    }

    read(req,res)
    {
        if(!req.params.id){
            this.sql.getConnection(function(err,connection){
                connection.query("select * from user order by id asc",function(err,results,fields){
                    res.render('select',{data:results});
                });
            });
        }else{
            this.sql.getConnection(function(err,connection){
                sql.query("select * from user where id=? order by id asc",[req.params.id],function(err,results,fields){
                    res.render('select',{data:results});
                });
            });
        }
    }

    create(req,res)
    {
        this.sql.getConnection(function(err,connection){
            connection.query("insert into user values (?,?,?)",[req.body.id,req.body.name,req.body.age]);
            res.render('controllerForm',{name:req.body.name});
        });
    }

    deletes(req,res)
    {
        this.sql.getConnection(function(err,connection){
            connection.query("delete from user where id=?",[req.params.id]);
            res.render('deletar');
        });
    }

    update(req,res,controller=null)
    {
        if(controller==null){
            this.sql.getConnection(function(err,connection){
                connection.query("select * from user where id=?",[req.params.id],function(err,results,fields){
                    res.render('update',{id:req.params.id,name:results[0].name,age:results[0].age});
                });
            });
        }else{
            this.sql.getConnection(function(err,connection){
                connection.query("update user set name=?,age=? where id=?",[req.body.name,req.body.age,req.body.id]);
                res.render('controllerUpdate');
            });
        }
    }
}
module.exports=ClassCrud;

No core do nosso sistema (app.js) faremos a instância desse novo módulo:

const crud=require('crud');
let cruds=new crud();

Nossas rotas serão chamadas através do método da ClassCrud. Ficará assim:

//Routes and Templates
app.get("/",function(req,res){res.render('index');});
app.get("/inserir",function(req,res){res.render("inserir");});
app.get("/select/:id?",function(req,res){cruds.read(req,res);});
app.post("/controllerForm",urlencodeParser,function(req,res){cruds.create(req,res);});
app.get('/deletar/:id',function(req,res){cruds.deletes(req,res);});
app.get("/update/:id",function(req,res){cruds.update(req,res);});
app.post("/controllerUpdate",urlencodeParser,function(req,res){cruds.update(req,res,'controller');});

Vantagens

- Modularização
- Código enxuto
- Velocidade de processamento
- Segurança
- Instalação simplificada pelo NPM
- Utilizar a mesma linguagem tanto para front quanto para backend
- Comunidade ativa

Domínio próprio

Você pode também inserir seu domínio próprio no Heroku. Para isso acesse: settings >> add domain. Posteriormente, basta mudar o dns no registro.br.

Então é isso, espero que tenham gostado do curso. Estude bastante Javascript, pois vale bastante a pena. Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

CRUD NodeJS - #09 Deploy II
Neste tutorial finalizaremos nosso deploy configurando nosso banco de dados online no servidor Heroku.
Saiba mais!
Crud com Laravel - #1 Introdução
Iniciamos hoje o curso de CRUD com Laravel. Aprenderemos neste curso a forma correta de integrar o framework Laravel com o banco de dados MySql.
Saiba mais!
Crud
Nesse curso aprenderemos como desenvolver uma ClassCrud com conexão ao banco de dados mysql através dos conectores PDO e MYSQLi.
Saiba mais!