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