Nodejs 操作[通过XAMPP安装的]MySQL数据库简明指南

Nodejs 操作[通过XAMPP安装的]MySQL数据库简明指南

Nodejs 操作MySQL数据库的前提是你的计算机中安装好Nodejs 和MySQL数据库。本文介绍如何使用 Node.js 来连接通过XAMPP安装的 MySQL,并对数据库进行操作。

要想使用Node操作MySql数据库,除了已安装MySQL数据库和Nodejs,还需要安装mysql模块(包)——node.js 操作 MySQL的驱动程序。

XAMPP安装的MySQL如何命令行中的使用

【XAMPP(Apache+MySQL+PHP+PERL) 是一个功能强大的建站集成软件包 ,详见 XAMPP入门详解_cnds123的专栏-CSDN博客

XAMPP安装的MySQL二进制文件应该在你的XAMPP文件夹下, 查找bin文件夹,您将找到mysql.exe客户端。 假设它在D:\xampp\mysql\bin中,将之加入到系统变量中:

以Windows10系统为例:

先要使用XAMPP Control Panel(XAMPP控制面板)启动MySQL,再以管理员身份启动“cmd”,在cmd(微软 Windows系统的命令行程序)中如下操作:

查看mysql版本

MySQL –V

若显示正常

就可以使用mysql了

先登录

mysql -u root -p

xampp 的MySQL默认的用户名root的密码(Password)默认为空

查看默认安装的数据库

show databases;

参见下图:

 这说明可以正常使用MySQL了

如何使用 Node.js连接MySQL

在项目文件夹(js程序文件所在的目录)中,安装mysql模块(包)——node.js 操作 MySQL的驱动程序——否则,node.js 连接mysql时报错:error: cannot find module 'mysql'

我这儿的项目文件夹是D:\NodeTest

先用cd命令切换到项目文件夹D:\NodeTest

cd /d D:\NodeTest

再用npm install mysql安装mysql模块(包),参见下图:

其中有几条警告(WARN)可以先不管。

【注,其中:npm WARN saveError ENOENT: no such file or directory, open xx/xx/x/package.json。

原因是:项目里面没有发现package.json文件,可以先不管,若想解决可这样处理:

cd命令切换到项目所在的目录(目录也叫文件夹)

npm init

创建package.json文件,系统会提示询问相关配置(可键入配置,也可直接按回车键,回车即设置默认参数)

或者,npm init -y

直接创建package.json文件,系统不再提示询问。】

此时,已经通过npm install mysql成功安装了mysql组件,将在D:\NodeTest中产生node_modules子目录。

现在建立一个名connTest.js脚本文件,用来测试连接,若连接成功将提示“Connected to the MySQL server.”,其内容如下:

/*引入mysql模块*/
let mysql = require('MySQL');
/*创建连接*/
let connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    //database: ''
});
/*连接mysql*/
connection.connect(function(err) {
  if (err) {
    return console.error('error: ' + err.message);
  }
  console.log('Connected to the MySQL server.');
});
/*关闭连接mysql*/
connection.end();

将connTest.js脚本文件保存到项目文件夹D:\NodeTest中,参见下图:

 运行node D:\NodeTest\connTest.js,参见下图:

之后,就可以练习用Nodejs运行JavaScript脚本文件(JavaScript程序)进行MySQL数据库的各种操作了。

现在建立一个创建数据库mysrcDB的脚本文件,文件名为nodejs_mysql_DB.js,保存在D:\NodeTest中,源码如下:

let mysql = require('mysql');
let con = mysql.createConnection({
	host: "localhost", user: "root", password: ""
});
 
con.connect(function(err) {
	if (err) throw err;
	console.log("Connected!");
        //建立数据库mysrcDB
	con.query("CREATE DATABASE mysrcDB", function (err, result) {
		if (err) throw err;
		console.log("Database created");
	});
        /*关闭连接mysql*/
        con.end();
});

运行此脚本node D:\NodeTest\nodejs_mysql_DB.js,参见下图:

 现在可以建立一个名为mysqlTest.js的脚本文件,对前面建立的mysrcDB数据库,建表MYTABLE,对该表进行插入数据、更新数据、更新数据等操作,源码如下:

// 引入Mysql
let mysql      = require('mysql');
let connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '',
  database : 'mysrcDB'
});
 
// 执行数据库连接
connection.connect();
 
let sqlstring = "";
 
// 创建表
sqlstring = "Create Table MYTABLE (name VARCHAR(20), sex CHAR(1))"
connection.query(sqlstring, function (err, results, fields) {
    if (err) {
         console.log('[UPDATE ERROR] - ', err.message);
        return;
    }
    console.log('--------------------------CREATE----------------------------');      
    console.log('CREATE TABLE:', results);       
    console.log('------------------------------------------------------------\n\n'); 
});
 
// 插入数据
sqlstring = "Insert into MYTABLE Values('Michael', 'm')";
connection.query(sqlstring, function (err, result) {
    if(err){
        console.log('[INSERT ERROR] - ', err.message);
        return;
    }       
 
   console.log('--------------------------INSERT----------------------------');      
   console.log('INSERT ID - ', result);       
   console.log('------------------------------------------------------------\n\n'); 
});
 
// 更新数据
sqlstring = "Update MYTABLE Set name = 'Michael Jordan' Where sex = 'm'";
connection.query(sqlstring, 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'); 
});
 
// 查询数据
sqlstring = "Select * From MYTABLE";
connection.query(sqlstring, function (err, result) {
    if(err){
        console.log('[SELECT ERROR] - ', err.message);
        return;
    }
 
    console.log('--------------------------SELECT---------------------------');
    console.log('SELECT - ', result);
    console.log('------------------------------------------------------------\n\n');  
});
 
//删除数据
sqlstring = "Delete From MYTABLE";
connection.query(sqlstring, 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'); 
});
 
//删除表格
sqlstring = "Drop Table MYTABLE";
connection.query(sqlstring, function (err, result) {
    if(err){
        console.log('[DROP ERROR] - ', err.message);
        return;
    }       
 
    console.log('--------------------------DROP-----------------------------');
    console.log('DROP TABLE :', result.affectedRows);
    console.log('------------------------------------------------------------\n\n');   
});
 
// 断开数据库连接
connection.end();

运行此脚本node D:\NodeTest\mysqlTest.js,参见下图:

Nodejs执行DROP DATABASE语句可以删除已建立的数据库

MySQL的DROP DATABASE删除已建立的数据库,如删除已建立的数据库db_name

DROP DATABASE IF EXISTS db_name

Mysql在Node中的具体使用  https://juejin.cn/post/6858226888645869575

猜你喜欢

转载自blog.csdn.net/cnds123/article/details/120995324