Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

erro em cadastrar e editar - não salva

Estou com problemas na hora de salvar o cadastro e na edição de salvar o cadastro, Na hora de cadastrar ele fica pensando, na hr de editar ele faz tudo certo e qnd volta a pagina não salvou a edição...

Não faço ideia onde está o erro, imagino que a html não esta enviando certo?

         <main class="conteudoPrincipal">
             <div class="container">
                 <h1>Cadastro de Motoristas</h1>

                 <div if(data.errorValidation)>
                    <div class="alert alert-danger" for(erro in data.errorValidation)>
                        ${erro.param} - ${erro.msg}
                    </div>
                 </div>

                <form action="/motorists/register" method="post">

                    <div if (data.motorists.id)>
                        <input type="hidden" name="_method" value="PUT">
                        <input type="hidden" id="id" name="id" value="${data.motorists.id}" />
                    </div>

                    <div class="custom-file">
                        <label for="foto" class="custom-file-label">Selecione Arquivo da foto do motorista</label>
                        <input type="file" id="foto" name="foto" placeholder="foto do Motorista" />
                    </div>

                    <div class="form-group">
                        <label for="nome">Nome:</label>
                        <input type="text" id="nome" name="nome" value="${data.motorists.nome}" placeholder="Digite o Nome do Motorista" class="form-control" />
                    </div>


                    <div class="form-row">

                        <div class="form-group col-md-6">
                            <label for="transbordo">Transbordo</label>
                            <input type="text" id="transbordo" value="${data.motorists.transbordo}" name="transbordo" placeholder="150.25" class="form-control" />
                        </div>

                        <div class="form-group col-md-6">
                            <label for="cpf">CPF</label>
                            <input type="text" id="transbordo"  name="cpf" placeholder="" class="form-control" />
                        </div>

                        <div class="form-group col-md-6">
                            <label for="cpnj">CNPJ</label>
                            <input type="text" id="cpnj"  name="cpnj" placeholder="" class="form-control" />
                        </div>

                        <div class="form-group col-md-6">
                            <label for="rg">RG</label>
                            <input type="text" id="rg"  name="rg" placeholder="" class="form-control" />
                        </div>

                      <div class="form-group co">
                            <label for="turno">Turno</label>
                            <select class="custom-select mr-sm-2" id="turnos" >
                                <option value="1">Diurno</option>
                                <option value="2">Vespertino</option>
                                <option value="3">Noturno</option>
                            </select>
                       </div>

                        </div>

                    <input type="submit" value="Salvar" class="btn btn-primary" />

                </form>

             </div>
         </main>
2 respostas

aLGUNS CAMPOS EU NAO ESTOU UTILIZANDO, ESTAO APENAS NO HTML

const { validationResult } = require('express-validator/check');
const { response } = require('express');

const MotoristsDao = require('../infra/motorists-dao');
const db = require('../../config/database');

//ROTAS CONTROLADAS DOS MOTORISTAS
class MotoristsControllers {

    static routes(){
        return{
            list: '/motorists',
            register: '/motorists/register',
            edit: '/motorists/register/:id',
            delete: '/motorists/:id'

        };
    }

    list() {

        return (req, res) => 
        {

         const motoristsDao = new MotoristsDao(db);
         motoristsDao.list()
             .then(motorists =>  res.marko(
                 require('../views/motorists/list/list.marko'),
                 {
                     motorists: motorists
                 }
             ))
            .catch(error => console.log(error));
      };
    }

    formRegister() {

        return  (req, res) => {
            res.marko(require('../views/motorists/form/form.marko'), { motorists: {} });
        };
    };

    formEdit() {

        return (req, res) => {
            const id = req.params.id;
            const motoristsDao = new MotoristsDao(db);

            motoristsDao.edit(id)
                .then(motorists => 
                    res.marko(
                        require('../views/motorists/form/form.marko'),
                        { motorists: motorists }
                    )
                )
                .catch(error => console.log(error));
        };
    };

    Update() {

        return  (req, res) => {
            console.log(req.body);
            const motoristsDao = new MotoristsDao(db);

            motoristsDao.update(req.body)
                .then(res.redirect(MotoristsControllers.routes().list))
               .catch(error => console.log(error));
        };
    };

    saveRegister() {

        return  (req, res) => {
            console.log(req.body);
            const motoristsDao = new MotoristsDao(db);


            const errors = validationResult(req);

            if (!errors.isEmpty()) {
                 return res.marko(
                     require('../views/motorists/form/form.marko'),
                     { 
                          motorists: {},  
                          errorValidation: errors.array()
                     }
                 );
            }

            motoristsDao.add(req.body)
                .then(res.redirect(MotoristsControllers.routes().list))
               .catch(error => console.log(error));
        };
    };

    deleteRegister() {

        return  (req, res) => {
            const id = req.params.id;

            const motoristsDao = new MotoristsDao(db);
            motoristsDao.remove(id)
               .then(() => res.status(200).end())
               .catch(error => console.log(error));

        };
    };



}

module.exports = MotoristsControllers
solução!

Oi Christian, tudo bem? Batendo o olho assim no código eu não poderia dizer com muita certeza onde está o problema. Você consegue me disponibilizar seu projeto para que eu faça alguns testes e te indique melhor o que está acontecendo?