Maison interface Web Questions et réponses frontales nodejs encapsule MySQL pour implémenter la pagination

nodejs encapsule MySQL pour implémenter la pagination

May 28, 2023 pm 01:40 PM

Avec le développement rapide d'Internet, de plus en plus de sites Web et d'applications sont développés, et la quantité de données devient de plus en plus importante, de sorte que le traitement et la gestion des données deviennent de plus en plus importants. Parmi eux, la pagination est une méthode de requête de données très courante, qui peut facilement afficher de grandes quantités de données et offrir aux utilisateurs une meilleure expérience utilisateur. En développement, nous utilisons généralement la base de données MySQL pour stocker les données. Cet article explique comment utiliser Node.js pour encapsuler MySQL afin d'implémenter la fonction de requête de pagination.

  1. Créer une table de base de données

Tout d'abord, nous devons créer une table dans MySQL pour stocker les données dont nous avons besoin. Cet article prend comme exemple la table « utilisateurs », qui contient trois champs : identifiant, nom et âge. La structure et les données spécifiques de la table sont les suivantes :

CREATE TABLE users (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  age INT(11) NOT NULL,
  PRIMARY KEY (id)
);

INSERT INTO users (name, age) VALUES ('小明', 18);
INSERT INTO users (name, age) VALUES ('小红', 20);
INSERT INTO users (name, age) VALUES ('小华', 22);
INSERT INTO users (name, age) VALUES ('小张', 25);
INSERT INTO users (name, age) VALUES ('小李', 28);
INSERT INTO users (name, age) VALUES ('小刘', 30);
Copier après la connexion
  1. Installer les modules MySQL et mysql

Ensuite, nous devons installer la base de données MySQL et le module mysql correspondant. Il peut être installé via la commande suivante :

npm install mysql
Copier après la connexion
  1. Implémentation de requête de page

Avant d'utiliser le module mysql, nous devons nous connecter à la base de données MySQL via le code suivant :

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'test'
});

connection.connect();
Copier après la connexion

Ici, nous définissons le nom de la base de données connectée sur "test", vous devez le modifier en fonction de votre situation réelle.

Ensuite, nous encapsulons une fonction de requête de pagination pour interroger le nombre spécifié de pages de données. Le nom de la fonction est "queryByPage", et les paramètres transmis sont :

  • tableName : le nom de la table de données à interroger
  • pageNum : le nombre de pages à interroger
  • pageSize : le nombre de données affichées sur chaque page
  • callback : fonction de rappel, utilisée pour recevoir les résultats de la requête

Le code d'implémentation de la fonction est le suivant :

function queryByPage(tableName, pageNum, pageSize, callback) {
  const start = (pageNum - 1) * pageSize;
  const sql = `SELECT * FROM ${tableName} ORDER BY id DESC LIMIT ${start}, ${pageSize}`;
  connection.query(sql, (err, results) => {
    if (err) {
      return callback(err, null);
    }
    const countSql = `SELECT count(*) as count FROM ${tableName}`;
    connection.query(countSql, (err, count) => {
      if (err) {
        return callback(err, null);
      }
      const totalCount = count[0].count;
      const totalPage = Math.ceil(totalCount / pageSize);
      return callback(null, {
        pageNum,
        pageSize,
        totalCount,
        totalPage,
        data: results
      });
    });
  });
}
Copier après la connexion

Le code ci-dessus implémente les fonctions suivantes :

  • Calculez la position de départ des données de la requête en fonction de la nombre de pages transmises et nombre de données affichées sur chaque page
  • Exécutez l'instruction de requête MySQL pour implémenter la requête de pagination et obtenir les résultats de la requête
  • Exécutez l'instruction de requête MySQL pour obtenir la quantité totale de données
  • Calculez le nombre total de pages en fonction de la quantité totale de données et du nombre de données affichées sur chaque page
  • Page des résultats de la requête et pagination Les informations sont encapsulées dans un objet pour le rappel
  1. Appelez la fonction de requête de pagination

Enfin, nous peut appeler la fonction de requête de pagination encapsulée dans l'application Node.js et afficher les résultats de la requête si nécessaire.

queryByPage('users', 1, 2, (err, result) => {
  if (err) {
    console.error(err.message);
    return;
  }
  console.log(result);
});
Copier après la connexion

Le code ci-dessus interrogera la première page de données dans la table "utilisateurs", affichera 2 enregistrements sur chaque page et affichera les résultats de la requête sur la console.

  1. Résumé

Cet article explique comment utiliser Node.js pour encapsuler MySQL afin d'implémenter la fonction de requête de pagination. En créant des tables de base de données, en installant le module mysql et en encapsulant les fonctions de requête, nous pouvons facilement interroger le numéro de page de données spécifié et l'afficher dans l'application. Bien sûr, dans les applications réelles, nous devons également améliorer le code en fonction de la situation réelle et effectuer la gestion des erreurs et des exceptions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez le concept de chargement paresseux. Expliquez le concept de chargement paresseux. Mar 13, 2025 pm 07:47 PM

Expliquez le concept de chargement paresseux.

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires?

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable?

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

Comment fonctionne le currying en JavaScript et quels sont ses avantages?

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

Comment fonctionne l'algorithme de réconciliation React?

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Mar 19, 2025 pm 03:59 PM

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants?

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Mar 19, 2025 pm 04:10 PM

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements?

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Mar 19, 2025 pm 04:16 PM

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés?

See all articles