问题描述
我正在尝试使用Knex的update方法对数据库中的特定行进行更新。我的命令返回成功,但是当我查看数据库时,没有任何更改。
这是我的代码
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,}
});
await connection('fluxo_caixa').insert(newTransitions);
return response.status(200).send({ok: 'Conciliacion success'});
进行新插入的部分代码可以正常工作,但更新方法不会更新数据库。
解决方法
我设法找到错误。在为变量idConciliation分配值时,需要指定请求对象的索引,即id。
正确的是:
const idConciliation = request.params.id;