我正在使用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
收到此错误消息
Error: update_batch(): You must provide some data to batch update!
最佳答案
首先,我想推荐你,避免https://www.npmjs.com/package/node-querybuilder#update_batch因为这个库还没有准备好生产并且有错误(我创建了拉取请求 https://github.com/kylefarris/node-querybuilder/pull/24 )。您可能想看看http://knexjs.org .
如果您想继续,则必须在数据集
对象中传递Key
。在文档中,
Name of the key in each data object that represents a where clause.
需要索引键,而 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);
});
如果您想在合并和发布模块的新更新之前进行尝试,可以尝试将文件 ./node_modules/node-querybuilder/drivers/mysql/query_builder.js
中的第 143 行从 const results = null;
更新为 let results = null;
我希望这对你有用
关于node.js - 尽管提供了数据,node-querybuilder仍返回错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50526140/