Node.js 连接 MySQL
一、安装库
npm install mysql
二、基本使用
- 引入 mysql 模块:
require('mysql')
- 创建数据库对象:
mysql.createConnection(options)
- 数据库连接:
connection.connect(callback)
- 执行数据库语句:
connection.query(sqlStr, callback)
const mysql = require('mysql')
// 1. 创建的数据库配置信息
const options = {
host: 'localhost', // 主机名或IP地址
port: '3306', // 端口
user: 'root', // 用户名
password: '123456', // 密码
database: 'nodedb' // 数据库名称
}
// 2. 创建数据库对象
const connection = mysql.createConnection(options)
// 3. 连接
connection.connect(err => {
// 如果建立连接失败,就会执行
if(err) {
console.log(err)
console.log('连接失败')
}else {
console.log('连接成功')
}
})
// 4. 数据库语句
let sqlStr = 'select * from student'
// error: 错误信息
// result: 结果
// fields: 查询到字段信息
connection.query(sqlStr, (error, result, fields) => {
if(error) {
console.log(error)
console.log("查询失败")
}else {
console.log(result)
console.log(fields)
}
})
三、增删查改(CURD)
3.1、连接
const mysql = require('mysql')
// 1. 创建的数据库配置信息
const options = {
host: 'localhost', // 主机名或IP地址
port: '3306', // 端口
user: 'root', // 用户名
password: '123456', // 密码
database: 'nodedb' // 数据库名称
}
// 2. 创建数据库对象
const connection = mysql.createConnection(options)
// 3. 连接
connection.connect(err => {
// 如果建立连接失败,就会执行
if(err) {
console.log(err)
console.log('连接失败')
}else {
console.log('连接成功')
}
})
3.2、查询数据
// 4. 数据库语句
let sqlStr = 'select * from student'
// error: 错误信息
// result: 结果
// fields: 查询到字段信息
connection.query(sqlStr, (error, result, fields) => {
if(error) {
console.log(error)
console.log("查询失败")
}else {
console.log('------SELECT------');
console.log(result)
console.log('------------------');
}
})
结果如下:
------SELECT------
[
RowDataPacket { id: 1, name: '小明', gender: '男', age: 18, brief: '帅' },
RowDataPacket { id: 2, name: '小红', gender: '女', age: 19, brief: '美' }
]
------------------
3.3、修改数据
// 4. 数据库语句
let sqlStr = 'update student set age = ? where id = ?'
let sqlStrParams = ['20', '1']
// error: 错误信息
// result: 结果
// fields: 查询到字段信息
connection.query(sqlStr, sqlStrParams, (error, result) => {
if(error) {
console.log(error)
console.log("修改失败")
}else {
console.log('------UPDATE------');
console.log(result)
console.log('------------------');
}
})
结果如下:
------UPDATE------
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
}
------------------
3.4、插入数据
// 4. 数据库语句
let sqlStr = 'insert into student (id, name, gender, age, brief) value (?, ?, ?, ?, ?)'
let sqlStrParams = ['3', '小绿', '男', '22', '超级']
// error: 错误信息
// result: 结果
// fields: 查询到字段信息
connection.query(sqlStr, sqlStrParams, (error, result) => {
if(error) {
console.log(error)
console.log("插入失败")
}else {
console.log('------INSERT------');
console.log(result)
console.log('------------------');
}
})
结果如下:
------INSERT------
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 3,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
}
------------------
3.5、删除数据
// 4. 数据库语句
let sqlStr = 'delete from student where id = 3'
// error: 错误信息
// result: 结果
// fields: 查询到字段信息
connection.query(sqlStr, (error, result) => {
if(error) {
console.log(error)
console.log("删除失败")
}else {
console.log('------DELETE------');
console.log(result)
console.log('------------------');
}
})
结果如下:
------DELETE------
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
}
------------------
3.6、删除 表
let sql = 'drop table student(表名)'
3.7、删除 数据库
let sql = 'drop database nodedb(数据库名)'
3.8、创建 数据库
let sql = 'create database nodedb(数据库名)'
3.9、创建 表
let sql = `CREATE TABLE student1 (
id int(11) NOT NULL,
name varchar(255) DEFAULT NULL,
gender varchar(255) DEFAULT NULL,
age int(11) DEFAULT NULL,
brief varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;`