1
resposta

Erro 1064 no banco de dados ao receber chamada do postman

Estou tendo um problema ao usar o postman para criar meus dados de cliente do pet shop no banco de dados

{
  code: 'ER_PARSE_ERROR',
  errno: 1064,
  sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1",
  sqlState: '42000',
  index: 0,
  sql: 'INSERT INTO atendimentos SET '
}

Minha versão do SQL está igual a do curso Insira aqui a descrição dessa imagem para ajudar na acessibilidade

A chamada do postman Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E aqui está meu código Atendimento.js

    const conexao = require('../infraestrutura/conexao')
    const moment = require('moment')

    class Atendimento {
        adiciona(atendimento) {
            const dataCriacao = new moment()  
            const data = moment(atendimento.data, 'DD/MM/YYYY').format('YYYY-MM-DD HH:MM:SS')
            const atendimentoDatado = {...atendimento, dataCriacao, data}
            const sql = 'INSERT INTO Atendimentos SET ?'

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

    module.exports = new Atendimento

Index.js

const customExpress = require('./config/customExpress')
const conexao = require('./infraestrutura/conexao')


conexao.connect(erro => {
    if(erro) {
        console.log(erro)
    } else {
        console.log('conectado com sucesso')

        const app = customExpress()

        app.listen(3000, () => console.log('Servidor rodando na porta 3000'))
    }
})

E o config customExpress.js

const express = require('express')
const consign = require('consign')
const bodyParser = require('body-parser')
///const bodyParser = require('body-parser')

module.exports = () => {
 const app = express()

 app.use(express.json())
 app.use(express.urlencoded({ extended: true }))


 consign()
   .include('controllers')
   .into(app)

 return app
}

`

1 resposta

Boa tarde Lucas. Tudo certo?

Achei uma pequena diferença na forma com que você submete a requisição comparado à como foi feito durante a aula: você seleciona o método POST e envia os dados como raw. Aos 04:26 da aula os dados são enviados como um x-www-form-urlencoded e colocados como chave e valor. Poderia testar submeter a requisição dessa forma e ver se resolveu o problema?

A explicação sobre essa diferença é abordada em um conteúdo mais avaçado na formação de Node, mas caso queira dar uma olhada aqui tem uma documentação sobre cabeçalhos HTTP. Se o problema ainda persistir, pode mandar um link para um repositório com o seu projeto para que seja mais fácil encontrar e solucionar eventuais bugs.

Espero ter ajudado. Bons estudos!