2
respostas

Erro ao executar o POST

O erro que está ocorrendo é o seguinte:

Executing (default): INSERT INTO fornecedores (id,empresa,email,categoria,dataCriacao,dataAtualizacao,versao) VALUES (DEFAULT,?,?,?,?,?,?); (node:5317) UnhandledPromiseRejectionWarning: Error at Query.run (/home/carlos/Área de Trabalho/NODE/api-petshop/node_modules/sequelize/dist/lib/dialects/mysql/query.js:52:25) at retry (/home/carlos/Área de Trabalho/NODE/api-petshop/node_modules/sequelize/dist/lib/sequelize.js:313:28) at process.tickCallback (internal/process/nexttick.js:68:7) (node:5317) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:5317) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Meu código está da seguinte forma: https://github.com/Carlos-hub/api-rest-petshop-nodejs

2 respostas

Bom, eu dei uma olhada no teu código e percebi que apenas resultados não está declarado, porém não seria ele o motivo do erro. Tenta colocar a instrução toda dentro de um try catch para ver se ou resolve ou ele retorna um erro melhor para entender o problema.

roteador.post('/', async (requisicao,resposta) =>{
    const dadosRecebidos = requisicao.body
    const fornecedor = new Fornecedor(dadosRecebidos)
    await fornecedor.criar()
    resposta.send(
        JSON.stringify(resultados)
    )
})
roteador.post('/', async (request, response) => {
    try {
        const dadosRecebidos = request.body;
        const fornecedor = new Fornecedor(dadosRecebidos);

        await fornecedor.criar();
        response.status(201).send(
            JSON.stringify(resultados)
        )
    } catch (error) {
        response.status(400).send(
            JSON.stringify({
                message: error.message
            })
        )
    }
})

Espero ter ajudado!

Outra coisa que percebi no teu código, no arquivo index.js na raíz da pasta api, está com body.parser, porém ele é deprecated, precisa ser corrigido isso também.

No lugar pode usar o próprio express.

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software