如何让 knex 对象在我的 Strapi 服务中执行自定义或复杂查询?
我的 Strapi 版本已安装strapi-hook-knex
,strapi-hook-bookshelf
但当我运行qb.raw
它时,它是一个未定义的对象。
这是运行这样的查询:
qb.select(knex.raw('.... ?? )', '...'))
如何让 knex 对象在我的 Strapi 服务中执行自定义或复杂查询?
我的 Strapi 版本已安装strapi-hook-knex
,strapi-hook-bookshelf
但当我运行qb.raw
它时,它是一个未定义的对象。
这是运行这样的查询:
qb.select(knex.raw('.... ?? )', '...'))
你会发现它在strapi.connections.default
default
如果您不更改连接名称。如果你这样做了,你将不得不default
用你的连接名称替换。
我花了一段时间来确定确切的语法。在这里以防万一对其他人有帮助。如果没有 Jim LAURIE 的回答,就不可能到达那里。
module.exports = {
async findCustom(ctx) {
const rawBuilder = strapi.connections.default.raw(
"select field1 from mytable where field1 = 'x'"
);
const resp = await rawBuilder.then();
return resp.rows;
}
}
使用 Strapi v4 使用:
strapi.db.connection.raw
代替
strapi.connections.default.raw