Search code examples
javascriptnode.jsexpressknex.js

Update failed Knexjs


I'm trying to do an update on a specific line in my database using Knex's update method. My return from my command is successful, but when I look at my database, no changes have been made.

This is my code

async multipleConciliation(request, response) {

        try {
            
            const dataMultiples = request.body;
            const idConciliation = request.params;
            const dataToken = decoded(request.headers.authorization);
            const usuario = dataToken.id;
            const empresa = dataToken.empresa;

            await connection('fluxo_caixa').where('id', '=', idConciliation).update({ativo: 0});

            const newTransitions = dataMultiples.map((i)=>{
                return {

                    usuario_id: usuario,
                    empresa_id: empresa,
                    fc_banco_id: i.fc_banco_id,
                    data_extrato: i.data_extrato,
                    valor_extrato: i.valor_extrato,
                    tipo_extrato: i.tipo_extrato,
                    historico_extrato: i.historico_extrato,
                    tipo_conciliacao: i.tipo_conciliacao,
                    historico_conciliacao: i.historico_conciliacao,
                    nf: i.nf,
                    fc_categoria_id: i.fc_categoria_id,
                    fc_terceiro_id: i.fc_terceiro_id,
                    fc_parent: idConciliation,

                }
            });

async multipleConciliation(request, response) {

        try {
            
            const dataMultiples = request.body;
            const idConciliation = request.params;
            const dataToken = decoded(request.headers.authorization);
            const usuario = dataToken.id;
            const empresa = dataToken.empresa;

            await connection('fluxo_caixa').where('id', '=', idConciliation).update({ativo: 0});

            const newTransitions = dataMultiples.map((i)=>{
                return {

                    usuario_id: usuario,
                    empresa_id: empresa,
                    fc_banco_id: i.fc_banco_id,
                    data_extrato: i.data_extrato,
                    valor_extrato: i.valor_extrato,
                    tipo_extrato: i.tipo_extrato,
                    historico_extrato: i.historico_extrato,
                    tipo_conciliacao: i.tipo_conciliacao,
                    historico_conciliacao: i.historico_conciliacao,
                    nf: i.nf,
                    fc_categoria_id: i.fc_categoria_id,
                    fc_terceiro_id: i.fc_terceiro_id,
                    fc_parent: idConciliation,

                }
            });

            await connection('fluxo_caixa').insert(newTransitions);

            return response.status(200).send({ok: 'Conciliacion success'});

The part of the code that makes a new insert works fine, but the update method that is not updating my database.


Solution

  • I managed to find the error. When I assigned a value to the variable idConciliation, I needed to specify the index of my request object, which is id.

    The correct is:

    const idConciliation = request.params.id;