Maison > interface Web > js tutoriel > le corps du texte

Exemple de méthode Node.js pour se connecter à MySQL

小云云
Libérer: 2018-03-02 11:30:44
original
1498 Les gens l'ont consulté

Dans cet article, nous présentons principalement comment utiliser Node.js pour se connecter à MySQL et faire fonctionner la base de données. Le fichier SQL de la table Sites Web utilisé dans ce tutoriel : sites Web.sql, j'espère qu'il pourra être utile à tout le monde.

Installer le pilote

Ce tutoriel utilise la commande cnpm personnalisée de Taobao pour l'installation :

$ cnpm install mysql
Copier après la connexion

Connectez-vous à la base de données

Modifiez-le selon vos besoins dans les exemples suivants, la configuration actuelle modifie le nom d'utilisateur, le mot de passe et le nom de la base de données :

Code du fichier test.js :

var mysql      = require('mysql');
var connection = mysql.createConnection
({  host     : 'localhost',  user     :
 'root',  password : '123456',  database : 'test'});
  connection.connect(); connection.query
  ('SELECT 1 + 1 AS solution', function 
  (error, results, fields) {  if (error)
   throw error;  console.log
   ('The solution is: ', results[0]
   .solution);}
   );
Copier après la connexion

Exécutez la commande suivante et le résultat sera :

$ node test.js
The solution is: 2
Copier après la connexion

数据库连接参数说明:

参数描述
host主机地址 (默认:localhost)
user用户名
password密码
port端口号 (默认:3306)
database数据库名
charset连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)
localAddress此IP用于TCP连接(可选)
socketPath连接到unix域路径,当使用 host 和 port 时会被忽略
timezone时区(默认:'local')
connectTimeoutDélai d'expiration de la connexion (par défaut : aucune limite ; unité : millisecondes)
stringifyObjectsSérialiser ou non les objets
typeCastS'il faut convertir les valeurs de colonne en valeurs de type JavaScript local (par défaut : true)
queryFormatMéthode de formatage des instructions de requête personnalisée
supportBigNumbersLorsque la base de données prend en charge les colonnes de type bigint ou décimal, vous devez définir cette option sur true (par défaut : false)
bigNumberStringssupportBigNumbers et bigNumberStrings permettent de forcer le renvoi des colonnes bigint ou décimales en tant que types de chaîne JavaScript (par défaut : false)
dateStringsForcer le renvoi des types d'horodatage, de date et de données sous forme de types de chaîne au lieu des types de date JavaScript (par défaut : faux)
debugActiver le débogage (par défaut : false)
multipleStatements S'il faut autoriser plusieurs instructions MySQL dans une seule requête (par défaut : false)
flags permet de modifier les flags de connexion
ssl à l'aide du paramètre ssl (le même format que le crypto .createCredenitals) ou un nom de fichier de configuration SSL contenant une chaîne, ne regroupe actuellement que le fichier de configuration Amazon RDS

更多说明可参见:https://github.com/mysqljs/mysql


数据库操作( CURD )

在进行数据库操作前,你需要将本站提供的 Websites 表 SQL 文件websites.sql 导入到你的 MySQL 数据库中。

本教程测试的 MySQL 用户名为 root,密码为 123456,数据库为 test,你需要根据自己配置情况修改。

查询数据

将上面我们提供的 SQL 文件导入数据库后,执行以下代码即可查询出数据:

查询数据

var mysql  = require('mysql');   
var connection = mysql.createConnection
({       host     : 'localhost',       
  user     : 'root',               
   password : '123456',         
   port: '3306',                     
   database: 'test', });  
   connection.connect(); 
   var  sql = 'SELECT * FROM websites';
   //查connection.query(sql,function (err, result) 
   {        if(err)
   {          console.log('[SELECT ERROR] - ',err.message);          return;        }
           console.log('--------------------------SELECT----------------------------');       
           console.log(result);       
           console.log('------------------------------------------------------------\n\n');  }); 
           connection.end();
Copier après la connexion

执行以下命令输出就结果为:

$ node test.js--------------------------SELECT----------------------------[ RowDataPacket {
    id: 1,
    name: 'Google',
    url: 'https://www.google.cm/',
    alexa: 1,
    country: 'USA' },
  RowDataPacket {
    id: 2,
    name: '淘宝',
    url: 'https://www.taobao.com/',
    alexa: 13,
    country: 'CN' },
  RowDataPacket {
    id: 3,
    name: '菜鸟教程',
    url: 'http://www.runoob.com/',
    alexa: 4689,
    country: 'CN' },
  RowDataPacket {
    id: 4,
    name: '微博',
    url: 'http://weibo.com/',
    alexa: 20,
    country: 'CN' },
  RowDataPacket {
    id: 5,
    name: 'Facebook',
    url: 'https://www.facebook.com/',
    alexa: 3,
    country: 'USA' } ]------------------------------------------------------------
Copier après la connexion

插入数据

我们可以向数据表 websties 插入数据:

插入数据

var mysql  = require('mysql');   
var connection = mysql.createConnection
({       host     : 'localhost',         
user     : 'root',               
password : '123456',         port: '3306',                     database: 'test', });  
connection.connect(); var  addSql = 'INSERT INTO websites(Id,name,url,alexa,country) 
VALUES(0,?,?,?,?)';var  addSqlParams = ['菜鸟工具', 'https://c.runoob.com','23453', 'CN'];
//增connection.query(addSql,addSqlParams,function (err, result) {        if(err)
{         console.log('[INSERT ERROR] - ',err.message);         return;        }                
console.log('--------------------------INSERT----------------------------');       
//console.log('INSERT ID:',result.insertId);               console.log('INSERT ID:',result);               
console.log('-----------------------------------------------------------------\n\n');  }); 
connection.end();
Copier après la connexion

执行以下命令输出就结果为:

$ node test.js--------------------------INSERT----------------------------INSERT ID: OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 6,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0 }-----------------------------------------------------------------
Copier après la connexion

执行成功后,查看数据表,即可以看到添加的数据:

更新数据

我们也可以对数据库的数据进行修改:

更新数据

var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', port: '3306', database: 'test', }); connection.connect(); var modSql = 'UPDATE websites SET name = ?,url = ? WHERE Id = ?';var modSqlParams = ['菜鸟移动站', 'https://m.runoob.com',6];//改connection.query(modSql,modSqlParams,function (err, result) { if(err){ console.log('[UPDATE ERROR] - ',err.message); return; } console.log('--------------------------UPDATE----------------------------'); console.log('UPDATE affectedRows',result.affectedRows); console.log('-----------------------------------------------------------------\n\n');}); connection.end();

执行以下命令输出就结果为:

--------------------------UPDATE----------------------------UPDATE affectedRows 1-----------------------------------------------------------------
Copier après la connexion

执行成功后,查看数据表,即可以看到更新的数据:

删除数据

我们可以使用以下代码来删除 id 为 6 的数据:

删除数据

var mysql  = require('mysql');   
var connection = mysql.createConnection
({       host     : 'localhost',         
user     : 'root',                password : '123456',         
port: '3306',                     database: 'test', });  
connection.connect(); var delSql = 'DELETE FROM websites where id=6';
//删connection.query(delSql,function (err, result) {        if(err)
{          console.log('[DELETE ERROR] - ',err.message);          
return;        }                
console.log('--------------------------DELETE----------------------------');       
console.log('DELETE affectedRows',result.affectedRows);       
console.log('-----------------------------------------------------------------\n\n');  }); 
connection.end();
Copier après la connexion

执行以下命令输出就结果为:

--------------------------DELETE----------------------------DELETE affectedRows 1-----------------------------------------------------------------
Copier après la connexion

执行成功后,查看数据表,即可以看到 id=6 的数据已被删除:

相关推荐:

PHP 使用 ODBC 连接 Mysql 数据库_PHP教程

php 连接 mysql数据库操作类_PHP教程

node.js 开发指南 – Node.js 连接 MySQL 并进行数据库操作_node.js

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!