尽管提供数据,node-querybuilder仍会返回错误消息

时间:2018-05-25 09:41:11

标签: node.js node-modules query-builder

我正在使用node-querybuilder批量更新数据。

这就是我在做的事。

const key = 'tripId';
const where = {'tripId =' : id}

const dataset= 
[   { studentId: 43 }, 
    { studentId: 42 } 
];


db.queryBuilder.update_batch('trip_students_booking', dataset, key, where, (err, res) => {
    if (err) return console.error(err);

});

作为回应,我收到来自node-querybuilder

的错误消息
  

错误:update_batch():您必须提供一些数据才能批量更新!

1 个答案:

答案 0 :(得分:1)

首先,我想建议你,避免使用https://www.npmjs.com/package/node-querybuilder#update_batch,因为这个库没有生产就绪并且有bug(我创建了拉取请求https://github.com/kylefarris/node-querybuilder/pull/24)。您可以查看http://knexjs.org

如果您想继续,则必须在Key的对象中传递dataset。在文档中,

  

每个数据对象中表示where子句的键的名称。

当条件是可选的时,需要

和索引键,你的代码应该是

const key = 'tripId';

let dataset = [{
        tripId: id,
        studentId: 43
    },
    {
        tripId: id,
        studentId: 42
    }
];


db.queryBuilder.update_batch('trip_students_booking', dataset, key, (err, res) => {
    if (err && err.length > 0) return console.error(err);

});

如果您想在合并和发布模块的新更新之前尝试,可以尝试将文件const results = null;中的第143行从let results = null;更新为./node_modules/node-querybuilder/drivers/mysql/query_builder.js 我希望你能