Olá. Estou usando o node v. 8.10.0, na parte de da rota de /pet, Pet.adiciona, percebi que o body está indo vazio para o model, apresentando o erro no INSERT INTO pets SET ?. Como proceder para consegui pegar os dados do body.
petsController.js
const Pet = require('../models/pets');
module.exports = app => {
app.post('/pet', (req, res) => {
const pet = req.body
console.log(pet)
Pet.adiciona(pet, res)
})
app.get('/pet', (req, res) => {
Pet.lista(res)
})
}
pets.js
const conexao = require('../infraestrutura/conexao');
class Pet {
adiciona(pet, res) {
const sql = 'INSERT INTO pets SET ?'
conexao.query(sql, pet, erro => {
if(erro) {
console.log(erro)
res.status(400).json(erro)
} else {
res.status(201).json(pet)
}
})
}
lista(res){
const sql = 'SELECT * FROM pets'
conexao.query(sql, (erro, resultados) => {
if (erro){
res.status(400).json(erro)
} else {
res.status(200).json(resultados)
}
})
}
}
module.exports = new Pet()
ERRO:
{
"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 pets SET "
}
Para o atendimento, usa a mesma sintaxe do INSERT TO ... e não apresenta esse erro. No get do Pet ele funciona normal, não aparenta ser problema de rotas.
Valeu.