Aller au contenu
Comment paginer des données dans MySQL avec Sequelize
  1. Blogs/

Comment paginer des données dans MySQL avec Sequelize

··305 mots·2 mins·
Sommaire

Souvent, je me trouve aux prises avec Sequelize pour trouver une réponse directe à ma requête. Récemment, je travaillais sur une application full stack dans laquelle il était impératif de paginer les résultats depuis le backend (API REST) vers le client. Je me suis battu pour deux raisons. Tout d’abord, venant du context NoSQL, il est difficile de saisir les bases de données SQL. La deuxième raison étant que la documentation de Sequelize ne fournit pas une solution claire et directe à cette abstraction très basique. Beaucoup de gens supposent des choses dans le monde des bases de données SQL.

Ainsi, dans cet article, nous allons parler d’un module de base de pagination utilisant Sequelize, MySQL et Node.js. J’utilise des tables et des enregistrements dans votre base de données MySQL. Pour configurer une nouvelle application et établir une connexion à une base de données, lisez mon post sur Premiers pas avec Sequelize.

Définir un modèle
#

Je saute directement sur la définition du modèle utilisateur:

J’utilise une table contenant une centaine d’enregistrements d’utilisateur que nous voulons afficher sur une application Web, par exemple dans le panneau d’administration, et nous voulons afficher seulement 50 enregistrements à la fois.

Dans le fichier api/user.js, je définis un endpoint /:page qui extraira le nombre de résultats nécessaires de la base de données.

findAndCountAll est le modèle de recherche dans plusieurs enregistrements de la base de données. Il retourne à la fois les données requises et le nombre d’éléments de cette table. La requête ci-dessus obtiendra 50 enregistrements d’utilisateur à la fois jusqu’à ce que la page suivante soit appelée pour extraire les 50 prochains enregistrements. limit et offset sont nécessaires dans les requêtes liées à la pagination dans lesquelles limit extrait le nombre de lignes en fonction de la requête, tandis que offset est utilisé pour ignorer le nombre

Articles connexes

Démarrer avec Sequelize
··276 mots·2 mins
ORM ou Object Relation Mapping est un processus de mappage entre des objets et des systèmes de base de données relationnels. Un ORM agit comme une interface entre deux systèmes. Les ORM offrent aux développeurs des avantages de base, tels que la réduction du temps et des efforts et la concentration sur la logique métier. Le code est robuste au lieu de redondant. ORM aide à gérer les requêtes sur plusieurs tables de manière efficace. Enfin, un ORM (comme sequelize) est capable de se connecter à différentes bases de données (ce qui est pratique lors du passage d’une base de données à une autre).
AWS SDK pour Node.js: Meilleures pratiques
··149 mots·1 min

La plupart des exemples de code couvrant le kit AWS SDK comme ci-dessous, c’est à dire qu’ils importent l’intégralité du kit AWS même s’ils utilisent seulement quelques services AWS, parfois un seul (AWS DynamoDB).

Conteneuriser des applications Node.js avec Docker
··2281 mots·11 mins
La légèreté et la reproductibilité des conteneurs en ont fait une option de plus en plus utilisée par les entreprises souhaitant développer des applications logicielles évolutives, hautement disponibles et contrôlées par les versions.