5 votes

strapi + knex pour exécuter des requêtes complexes

Comment puis-je obtenir l'objet knex pour exécuter des requêtes personnalisées ou complexes dans mon service strapi ?

Ma version de Strapi a installé strapi-hook-knex et strapi-hook-bookshelf mais lorsque j'exécute qb.raw, l'objet est indéfini.

C'est pour exécuter des requêtes comme celle-ci :

qb.select(knex.raw('.... ?? )', '...'))

Merci d'avance.

7voto

Jim LAURIE Points 3123

Vous le trouverez dans strapi.connections.default

default si vous ne changez pas le nom de votre connexion. Si vous l'avez fait, vous devrez remplacer default par votre nom de connexion.

4voto

Dylan Points 121

J'ai mis du temps à trouver la syntaxe exacte pour ça. La voici au cas où elle serait utile à d'autres. Je n'aurais pas pu y arriver sans la réponse de 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;
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X