1
resposta

Validação dos campos na edição

Os campos do formulário não deveriam também ser validados no momento de edição de um livro? Atualmente pode-se, por exemplo, editar um livro e retirar o seu título ou preço.

Não sei se esta alteração será feita nas próximas aulas, mas segue as alterações que realizei para corrigir este ponto:

Arquivo de rotas:

// rotas.js

app.put(
        '/livros',
        [
            check('titulo')
                .isLength({ min: 5 })
                .withMessage('O título do livro deve ter pelo menos 5 caracteres.'),
            check('preco')
                .isCurrency()
                .withMessage(
                    'O preço do livro deve ter um valor monetário válido.'
                ),
        ],
        livroControlador.edita()
    );

Arquivo de Livro Controlador:

// livro-controlador.js

edita() {
        return (req, resp) => {
            console.log(req.body);
            const livroDao = new LivroDao(db);
            const erros = validationResult(req);

            if (!erros.isEmpty()) {
                return resp.marko(require('../views/livros/form/form.marko'), {
                    livro: req.body,
                    errosValidacao: erros.array(),
                });
            }

            livroDao
                .atualiza(req.body)
                .then(resp.redirect('/livros'))
                .catch(erro => console.log(erro));
        };
    }
1 resposta

Olá Artur, tudo bem? Peço desculpas pela demora em ti responder! Mas é uma boa ideia, a questão é que o instrutor não se prendeu muito a isso durante o curso, o foco foi mostrar que é possível fazer a validação nos métodos, mas ele optou por não fazer essa refatoração apenas para não estender muito o curso. Mas muito legal sua contribuição! Continue assim e bons estudos!