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

标签 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 收到此错误消息

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/

相关文章:

javascript - “内容类型”: 'text/html' not accepted until server is killed

javascript - axios get 函数在 Reactjs 中不起作用

node.js - 如果触发其他 Azure 函数,则超时 Azure 函数

javascript - stub 内部功能?

npm - 将 Gatsby v4 升级到 v5

php - Symfony2 QueryBuilder 按 ID 顺序返回产品查询

javascript - 我应该上传 "node_modules"吗?

javascript - 是否可以在 Node 中使用模块 "multiparty"上传多个文件?

Codeigniter 查询生成器连接 3 个表

php - 在 laravel 5.1 中使用 hasManyThrough 关系的模型的不同数据库连接