node·请求MySQL增删查改
node·请求MySQL
1】创建公共数据库信息文件 db.js
// 1. 导入 mysql 模块
const mysql = require('mysql')
// 2. 建立与 MySQL 数据库的连接关系
const db = mysql.createPool({
host: '127.0.0.1', // 数据库的 IP 地址
user: 'root', // 登录数据库的账号
password: '123456', // 登录数据库的密码
database: 'test', // 指定要操作哪个数据库
})
// 测试 mysql 模块能否正常工作
db.query('select 1', (err, results) => {
// mysql 模块工作期间报错了
if (err) return console.log(err.message)
// 能够成功的执行 SQL 语句
console.log(results);// [ RowDataPacket { '1': 1 } ]
})
//封装异步方法涵
// 这里接收第二参数values的原因是可以使用mysql的占位符 '?'
// 比如 query(`select * from my_database where id = ?`, [1])
let query = function(sql, values) { //sql语句,values占位符
// 返回一个 Promise
return new Promise((resolve, reject) => {
db.getConnection(function(err, connection) {
if (err) {
reject(err)
} else {
connection.query(sql, values, (err, rows) => {
if (err) {
reject(err)
} else {
resolve(rows)
}
// 结束会话
connection.release()
})
}
})
})
//使用方法,在接口js文件中
// api.post('/login', async (req, res) =>{
// // 这里可以同步获取到rows
// let rows = await query('select * from im_user')
// ctx.body = {
// code: 0,
// msg: '请求成功',
// data: rows
// }
// })
}
module.exports = { db, query }; //暴露出属性

2】创建查询或业务文件 test.js
var db = require('./db'); //引用db.js 暴露的属性
var db = require('./db'); //引用db.js 暴露的属性
// 查询 cnPL5_list 表中所有的数据
const sqlStr = 'select * from cnPL5_list'
db.query(sqlStr, (err, results) => {
// 查询数据失败
if (err) return console.log(err.message)
// 查询数据成功
// 注意:如果执行的是 select 查询语句,则执行的结果是数组
console.log(results)
})

// 插入数据的便捷方法
var user = { id: '2022000', date: '2022-00-00' }
// 定义待执行的 SQL 语句
var sqlStr = 'insert into cnPL5_list set ?'
// 执行 SQL 语句
db.query(sqlStr, user, (err, results) => {
if (err) return console.log(err.message)
if (results.affectedRows === 1) {
console.log('插入数据成功')
}
})// 删除 id 为 2022000 的用户
var id = '2022000';
var sqlStr = 'delete from cnPL5_list where id=?';
db.query(sqlStr, id, (err, results) => {
if (err) return console.log(err.message)
// 注意:执行 delete 语句之后,结果也是一个对象,也会包含 affectedRows 属性
if (results.affectedRows === 1) {
console.log('删除数据成功')
}
})// 更新数据的便捷方法
var user = { id: '2022000', date: '2022-00-11' }
// 定义 SQL 语句
var sqlStr = 'update cnPL5_list set ? where id=?'
// 执行 SQL 语句
db.query(sqlStr, [user, user.id], (err, results) => {
if (err) return console.log(err.message)
if (results.affectedRows === 1) {
console.log('更新数据成功')
}
})