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

Erro ao Inserir dado no Banco De Dados

Primeiramente estou usando MariaDB.

FILE: conexao.js

const mariadb = require('mariadb/callback')

const conexao = mariadb.createConnection({
    host: '127.0.0.1',
    port: 3306,
    user:'root',
    password:'senha',
    database: 'banco'
})

module.exports = conexao

FILE: atendimentos.js (Pasta Controllers)


const Atendimento = require('../models/atendimentos')
module.exports = app =>{
    app.get('/atendimentos', (req,res) => res.send('Voce esta na rota atendimentos teste'))




    app.post('/atendimentos' , (req,res) => {
        const atendimento = req.body
        Atendimento.adiciona(atendimento)


        res.send('Voce esta na rota de atendimento e esta realizando um post')})
};

FILE: Atendimentos.js (Pasta models)

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

class Atendimento {
    adiciona(atendimento) {
        const sql = 'INSERT INTO atendimentos SET  ? '
        console.log(sql)
        conexao.query(sql, atendimento,( erro ) => {
            if(erro){
                console.log(erro)
            }else{
                console.log(resultados)
            }
        })
    }
}

module.exports = new Atendimento

FILE: tabelas.js (infraestrutura)

class Tabelas {
    init(conexao){
        this.conexao = conexao
        this.criarAtendimentos()
    }

    criarAtendimentos(){
 const sql = 
 'CREATE TABLE if not exists Atendimentos (id int not null auto_increment, cliente varchar(80) not null, pet varchar(20),servico varchar(20) not null, status  varchar(20) not null, observacoes text, PRIMARY KEY(id) )'

        this.conexao.query(sql, erro =>{
            if(erro){
                console.log(erro)
            }else{
                console.log('Tabela Atendimento criada com sucesso')
            }
        })
    }
}

module.exports = new Tabelas

RESULTADO logs consign v0.1.6 Initialized in C:\Users\ADM\Desktop\projetoNode.js

  • .\controllers\atendimentos.js Servidor conectado com sucesso Tabela Atendimento criada com sucesso INSERT INTO atendimentos SET ? SqlError: (conn=60, no: 1064, SQLState: 42000) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''{"cliente":"fernando","pet":"sonic","servico":"cortar","status...' at line 1 sql: INSERT INTO atendimentos SET ? - parameters:[{"cliente":"fernando","pet":"sonic","servico":"cortar","status":"agendado","observacoes":"pelo longos"}] at Object.module.exports.createError (C:\Users\ADM\Desktop\projetoNode.js\node_modules\mariadb\lib\misc\errors.js:61:10) at PacketNodeEncoded.readError (C:\Users\ADM\Desktop\projetoNode.js\node_modules\mariadb\lib\io\packet.js:505:19) at Query.readResponsePacket (C:\Users\ADM\Desktop\projetoNode.js\node_modules\mariadb\lib\cmd\resultset.js:46:28) at PacketInputStream.receivePacketBasic (C:\Users\ADM\Desktop\projetoNode.js\node_modules\mariadb\lib\io\packet-input-stream.js:104:9) at PacketInputStream.onData (C:\Users\ADM\Desktop\projetoNode.js\node_modules\mariadb\lib\io\packet-input-stream.js:169:20) at Socket.emit (events.js:375:28) at addChunk (internal/streams/readable.js:290:12) at readableAddChunk (internal/streams/readable.js:265:9) at Socket.Readable.push (internal/streams/readable.js:204:10) at TCP.onStreamRead (internal/stream_base_commons.js:188:23) { text: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''{\\"cliente\\":\\"fernando\\",\\"pet\\":\\"sonic\\",\\"servico\\":\\"cortar\\",\\"status\\...' at line 1, sql: 'INSERT INTO atendimentos SET ? - parameters:[{"cliente":"fernando","pet":"sonic","servico":"cortar","status":"agendado","observacoes":"pelo longos"}]', fatal: false, errno: 1064, sqlState: '42000', code: 'ER_PARSE_ERROR'
2 respostas
solução!

Ja descobrir como fazer a inserção dos dados no MariaDB https://mariadb.com/resources/blog/getting-started-with-connector-node-js/

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

class Atendimento {
    adiciona(atendimento) {

         conexao.query("INSERT INTO atendimentos (cliente,pet,servico,status,observacoes) values (?,?,?,?,?)",[atendimento.cliente,atendimento.pet,atendimento.servico,atendimento.status,atendimento.observacoes])

    }
}

module.exports = new Atendimento

Esta resposta resolveu meu problema também.