Heim > Web-Frontend > js-Tutorial > Hauptteil

Beispiel für die Node.js-Methode zum Herstellen einer Verbindung mit MySQL

小云云
Freigeben: 2018-03-02 11:30:44
Original
1497 Leute haben es durchsucht

In diesem Artikel stellen wir hauptsächlich vor, wie man mit Node.js eine Verbindung zu MySQL herstellt und die Datenbank betreibt. Die in diesem Tutorial verwendete SQL-Datei für die Website-Tabelle: Websites.sql, ich hoffe, sie kann für alle hilfreich sein.

Installieren Sie den Treiber

Dieses Tutorial verwendet den benutzerdefinierten cnpm-Befehl von Taobao für die Installation:

$ cnpm install mysql
Nach dem Login kopieren

Mit der Datenbank verbinden

Ändern Sie es entsprechend Ihren Anforderungen In den folgenden Beispielen ändert die tatsächliche Konfiguration den Datenbankbenutzernamen, das Kennwort und den Datenbanknamen:

test.js-Dateicode:

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);}
   );
Nach dem Login kopieren

Führen Sie den folgenden Befehl aus und die Ausgabe lautet:

$ node test.js
The solution is: 2
Nach dem Login kopieren

数据库连接参数说明:

参数描述
host主机地址 (默认:localhost)
user用户名
password密码
port端口号 (默认:3306)
database数据库名
charset连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)
localAddress此IP用于TCP连接(可选)
socketPath连接到unix域路径,当使用 host 和 port 时会被忽略
timezone时区(默认:'local')
connectTimeoutVerbindungszeitlimit (Standard: keine Begrenzung; Einheit: Millisekunden)
stringifyObjectsOb Objekte serialisiert werden sollen
typeCastOb Spaltenwerte in lokale JavaScript-Typwerte konvertiert werden sollen (Standard: true)
queryFormatBenutzerdefinierte Formatierungsmethode für Abfrageanweisungen
supportBigNumbersWenn die Datenbank Spalten vom Typ Bigint oder Dezimal unterstützt, müssen Sie diese Option auf „true“ setzen (Standard: false)
bigNumberStringssupportBigNumbers und bigNumberStrings ermöglichen das Erzwingen der Rückgabe von Bigint- oder Dezimalspalten als JavaScript-Stringtypen (Standard: false)
dateStringsErzwingen Sie die Rückgabe von Zeitstempel, Datum/Uhrzeit und Datentypen als String-Typen anstelle von JavaScript-Datumstypen (Standard: false)
debugDebuggen aktivieren (Standard: false)
multipleStatements Ob mehrere MySQL-Anweisungen in einer Abfrage zugelassen werden sollen (Standard: false)
flags wird verwendet, um die Verbindungsflags
ssl mithilfe des SSL-Parameters (dasselbe Format wie die Kryptowährung) zu ändern .createCredenitals-Parameter) oder ein SSL-Konfigurationsdateiname, der eine Zeichenfolge enthält, bündelt derzeit nur die Amazon RDS-Konfigurationsdatei

更多说明可参见: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();
Nach dem Login kopieren

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

$ 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' } ]------------------------------------------------------------
Nach dem Login kopieren

插入数据

我们可以向数据表 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();
Nach dem Login kopieren

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

$ node test.js--------------------------INSERT----------------------------INSERT ID: OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 6,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0 }-----------------------------------------------------------------
Nach dem Login kopieren

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

更新数据

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

更新数据

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-----------------------------------------------------------------
Nach dem Login kopieren

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

删除数据

我们可以使用以下代码来删除 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();
Nach dem Login kopieren

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

--------------------------DELETE----------------------------DELETE affectedRows 1-----------------------------------------------------------------
Nach dem Login kopieren

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

相关推荐:

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

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

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

Das obige ist der detaillierte Inhalt vonBeispiel für die Node.js-Methode zum Herstellen einer Verbindung mit MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!