Maison > interface Web > js tutoriel > Utilisation de MySQL avec Node.js et le client JavaScript MySQL

Utilisation de MySQL avec Node.js et le client JavaScript MySQL

Joseph Gordon-Levitt
Libérer: 2025-02-14 08:47:11
original
294 Les gens l'ont consulté

Using MySQL with Node.js and the mysql JavaScript Client

Node.js Les développeurs utilisent fréquemment des bases de données NoSQL, MongoDB étant un choix populaire. Cependant, la sélection de la base de données devrait s'aligner sur les besoins du projet. Les bases de données NoSQL excellent avec la création de tableaux dynamiques et les inserts en temps réel, tandis que les bases de données SQL sont mieux adaptées aux requêtes et transactions complexes. Ce didacticiel démontre l'utilisation du module mysql - un client Node.js pour MySQL - pour se connecter à une base de données MySQL et effectuer des opérations CRUD, utiliser des procédures stockées et prévenir les vulnérabilités d'injection SQL. Cet article a été mis à jour en 2020 pour refléter les meilleures pratiques actuelles. Pour une plongée plus profonde dans MySQL, voir Jump Start MySql .

Concepts clés:

  • Utilisez le module mysql dans Node.js pour une interaction de base de données MySQL efficace et des opérations CRUD.
  • Vérifiez que Node.js et NPM sont installés avant d'utiliser NPM pour installer le module mysql.
  • Établir une connexion de la base de données MySQL à l'aide de mysql.createConnection, implémentant une gestion des erreurs pour une gestion robuste de la base de données.
  • Exécuter les requêtes SQL, récupérer les données et le traitement des résultats en utilisant con.query.
  • Tirez parti des procédures stockées MySQL pour une gestion efficace du code SQL et appelez-les dans votre application Node.js via con.query.
  • sauvegarder contre les attaques d'injection SQL à l'aide de requêtes paramétrées ou la méthode mysql.escape pour la désinfection d'entrée.

Démarrage rapide:

Connectez-vous à MySQL dans Node.js avec ces cinq étapes:

  1. Créer un projet: mkdir mysql-test && cd mysql-test.
  2. Initialiser package.json: npm init -y.
  3. Installez le module mysql: npm install mysql.
  4. créer app.js (modifier les espaces réservés):
const mysql = require('mysql');
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'user',
  password: 'password',
  database: 'database name'
});
connection.connect((err) => {
  if (err) throw err;
  console.log('Connected!');
});
Copier après la connexion
Copier après la connexion
  1. Run: node app.js. Attendez-vous à un "connecté!" message.

Installation du module mysql:

Les commandes mkdir mysql-test, cd mysql-test, npm init -y, et npm install mysql Créer le répertoire de projet, initialiser le projet et installer le module nécessaire. Cela suppose que Node.js et NPM sont déjà installés. Reportez-vous à l'article SitePoint "Installez plusieurs versions de Node.js à l'aide de NVM" si nécessaire.

Configuration de la base de données:

Avant de vous connecter, assurez-vous que MySQL est installé et configuré. Créez une base de données (par exemple, sitepoint) et une table (par exemple, authors). Les commandes SQL suivantes peuvent être utilisées:

CREATE DATABASE sitepoint CHARACTER SET utf8 COLLATE utf8_general_ci;
USE sitepoint;

CREATE TABLE authors (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(50),
  city varchar(50),
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

INSERT INTO authors (id, name, city) VALUES
(1, 'Michaela Lehr', 'Berlin'),
(2, 'Michael Wanyoike', 'Nairobi'),
(3, 'James Hibbard', 'Munich'),
(4, 'Karolina Gawron', 'Wrocław');
Copier après la connexion

Using MySQL with Node.js and the mysql JavaScript Client

Connexion à la base de données:

Créer app.js:

const mysql = require('mysql');
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'user',
  password: 'password',
  database: 'database name'
});
connection.connect((err) => {
  if (err) throw err;
  console.log('Connected!');
});
Copier après la connexion
Copier après la connexion

Exécuter node app.js (ou utiliser nodemon pour les redémarrages automatiques après les modifications du fichier).

Exécution des requêtes:

  • lecture: con.query('SELECT * FROM authors', (err,rows) => { ... }); récupère les données.
  • Création: con.query('INSERT INTO authors SET ?', author, (err, res) => { ... }); Insérez les données.
  • Mise à jour: con.query('UPDATE authors SET city = ? Where ID = ?', ['Leipzig', 3], (err, result) => { ... }); Met à jour les données.
  • Suppression: con.query('DELETE FROM authors WHERE id = ?', [5], (err, result) => { ... }); Supprime les données.

Utilisation avancée:

  • Procédures stockées: Créer des procédures stockées dans MySQL (par exemple, sp_get_authors) et appelez-les en utilisant con.query('CALL sp_get_authors()',function(err, rows){...});.
  • Échappement de l'entrée de l'utilisateur: Échappez toujours la saisie de l'utilisateur à l'aide de mysql.escape() ou des requêtes paramétrées pour empêcher l'injection SQL.

Using MySQL with Node.js and the mysql JavaScript Client

ORMS: Envisagez d'utiliser une séquelle de type ORM pour une productivité accrue, mais soyez conscient des implications potentielles de performance.

Conclusion:

Ce tutoriel fournit une base pour l'utilisation du module mysql avec node.js. Explorez la documentation officielle pour des fonctionnalités plus avancées. Des alternatives comme node-mysql2 sont également disponibles.

FAQS: Les FAQ fournies sont déjà bien répondues dans le texte d'origine et ne nécessitent pas de modification supplémentaire.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal