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:
mysql
dans Node.js pour une interaction de base de données MySQL efficace et des opérations CRUD. mysql
. mysql.createConnection
, implémentant une gestion des erreurs pour une gestion robuste de la base de données. con.query
. con.query
. mysql.escape
pour la désinfection d'entrée. Démarrage rapide:
Connectez-vous à MySQL dans Node.js avec ces cinq étapes:
mkdir mysql-test && cd mysql-test
. package.json
: npm init -y
. mysql
: npm install mysql
. 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!'); });
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');
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!'); });
Exécuter node app.js
(ou utiliser nodemon
pour les redémarrages automatiques après les modifications du fichier).
Exécution des requêtes:
con.query('SELECT * FROM authors', (err,rows) => { ... });
récupère les données. con.query('INSERT INTO authors SET ?', author, (err, res) => { ... });
Insérez les données. con.query('UPDATE authors SET city = ? Where ID = ?', ['Leipzig', 3], (err, result) => { ... });
Met à jour les données. con.query('DELETE FROM authors WHERE id = ?', [5], (err, result) => { ... });
Supprime les données. Utilisation avancée:
sp_get_authors
) et appelez-les en utilisant con.query('CALL sp_get_authors()',function(err, rows){...});
. mysql.escape()
ou des requêtes paramétrées pour empêcher l'injection SQL.
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!