5
respostas

Erro ao enviar formulário via postman

Ao tentar realizar o envio do formulário via postman, recebo o seguinte erro referente a data: code: 'ER_TRUNCATED_WRONG_VALUE', errno: 1292, sqlMessage: "Incorrect datetime value: '25/06/2021' for column 'data' at row 1", sqlState: '22007', index: 0, sql: "INSERT INTO Atendimentos SET cliente = 'luca', pet = 'cachorro', servico = 'tosa', status = 'agendado', observacoes = 'calmo', data = '25/06/2021'"

Model:

const moment = require('moment');
const conexao = require('../database/conexao')

class Atendimento{
    adiciona(atendimento){

        const dataCriacao = moment().format('YYYY-MM-DD HH:mm:ss');
        const data = moment(atendimento.data,'DD/MM/YYYY').format('YYYY-MM-DD HH:mm:ss')
        console.log(data);
        const atendimentoDatado = {...atendimento,data,dataCriacao}

        const sql = 'INSERT INTO Atendimentos SET ?'

        conexao.query(sql, atendimento,(erro,resultados)=>{
            if(erro){
                console.log(erro)
            }else{
                console.log(resultados)
            }
        })
    }
}

module.exports = new Atendimento

Controller:

const Atendimento = require('../models/atendimentos')

module.exports = app =>{
    app.get('/atendimentos',(req,res)=>{
        res.send('Você está na rota de atendimentos, e realizou um get');

    })

    app.post('/atendimentos',(req,res)=>{
        const atendimento = req.body;
        Atendimento.adiciona(atendimento);
        res.send('Post atendimento');
        console.log(req.body);
    })
}

Apesar do erro, o req.body retorna os valores enviados

5 respostas

Olá Luca Tamo junto acredito que o erro é na sua string

YYYY-MM-DD HH:mm:ss

acredito que seja somente colocar o mm e o ss em maiusculo assim:

YYYY-MM-DD HH:MM:SS

Forte Abraço!

Tiago, realizei a mudança, mas infelizmente não resolveu o erro. Também tive problemas quanto a inserção da ALTER TABLE de data, dataCriacao

na query voce ta passando o objeto "atedimento" voce teria que passar o atedimento datado onde estar com o formato corredo da data

        conexao.query(sql, atendimentoDatado ,(erro,resultados)=>{
            if(erro){
                console.log(erro)
            }else{
                console.log(resultados)
            }

Fiz oque vc sugeriu Mario, acredito que possa ter ligação com a ALTER TABLE, pois ao tentar implementá-la sem um DEFAULT resultava em erro, tive que por uma data qualquer para que fosse possível gerá-la, mas ainda assim continuei obtendo o mesmo erro.

Error: ER_TRUNCATED_WRONG_VALUE: Incorrect datetime value: '2021-06-10 16:06:68' for column 'dataCriacao' at row 1
  code: 'ER_TRUNCATED_WRONG_VALUE',
  errno: 1292,
  sqlMessage: "Incorrect datetime value: '2021-06-10 16:06:68' for column 'dataCriacao' at row 1",
  sqlState: '22007',
  index: 0,
  sql: "INSERT INTO Atendimentos SET `cliente` = 'luca', `pet` = 'cachorro', `servico` = 'tosa', `status` = 'agendado', `observacoes` = 'calmo', `data` = '2021-06-25 00:06:00', `dataCriacao` = '2021-06-10 16:06:68'"

Pessoal agradeço a atenção de todos, mas consegui resolver o problema, mudei a formatação de minutos e segundos conforme a documentação mais recente do MySQL