Node操作mysql

Node操作mysql

配置 mysql 模块

  1. 安装 mysql 模块
1
npm install mysql
  1. 建立连接
1
2
3
4
5
6
7
8
const mysql = require('mysql')

const db = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: 'root',
database: 'test',
})
  1. 测试是否正常工作
1
2
3
4
db.query('select 1', (err, results) => {
if (err) return console.log(err.message)
console.log(results)
})

操作 mysql 数据库

1.查询数据

1
2
3
db.query('select * from users', (err, results) => {
...
})

2.插入数据

1
2
3
4
5
6
7
8
// ? 表示占位符
const user={username:'王超',password:'pc1234'}
const sql = 'insert into user (username,password) values(?, ?)'
// 使用数组的形式为占位符指定具体的值
db.query(sql, [user.username, user.password], (err, results) => {
if (err) return console.log(err.message)
if (results.affectedRows === 1) console.log('插入成功')
})

向表中新增数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速插入数据:

1
2
3
4
5
const user = {username:'Bruce', password:'55520'}
const sql = 'insert into users set ?'
db.query(sql, user, (err, results) => {
...
})

3.更新数据

1
2
3
4
const sql = 'update users set username=?, password=? where id=?'
db.query(sql, [username, password, id], (err, results) => {
...
})

快捷方式:

1
2
3
4
5
const user = {id:7,username:'Bruce',password:'55520'}
const sql = 'update users set ? where id=?'
db.query(sql, [user, user.id], (err, results) => {
...
})

4.删除数据

1
2
3
4
const sql = 'delete from users where id=?'
db.query(sql, id, (err, results) => {
...
})

使用 delete 语句会真正删除数据,保险起见,使用标记删除的形式,模拟删除的动作。即在表中设置状态字段,标记当前的数据是否被删除。

1
2
3
4
5
const sqlDelet='update user set status =? where id=?'
db.query(sqlDelet,[1,6],(err, results)=>{
if (err) return console.log(err.message)
if (results.affectedRows === 1) console.log('删除成功')
})

Node操作mysql
https://tian-1-2.github.io/typblog/2022/11/25/20221125-Node操作mysql/
作者
田云鹏
发布于
2022年11月25日
许可协议