node操作数据库

  1. 初始化npm
npm init
  1. 安装mysql2模块以及express框架
npm i --save express mysql
  1. 后面就是项目中的代码应用:(基本使用)
//引入express模块和mysql2模块
const express = require('express')
const mysql = require('mysql2')

// 创建服务器
const app = express()

app.get('/',async (req , res)=>{
// 1.创建连接池,进行操作
const config = getConfig()//2.创建数据库连接对象

// 3.创建数据库连接池(promise形式调数据)
const promisePool = mysql.createPool(config).promise()

// 4.使用query方法来操作数据库(里面填的是sql操作语句)
// var students = await promisePool.query('select * from student')//查询学生的所有数据
var students = await promisePool.query(`select * from student order by
score desc limit 2 offset 2`)//条件查询(按分数的倒序查询只要3和4个)

// console.log(students[0]);//控制台上输出结果
res.send({
ok:1,
data: students[0]//输出到页面上
})
})

// 启动服务器
app.listen(3000,()=>{
console.log('服务器已启动,3000端口号正在监听...');
})

// 创建链接数据库函数
function getConfig(){
return {
host:'127.0.0.1',//域名
port: 3306,//端口号(mysql默认是3306)
user: 'root',//数据库的用户名
password: 'Zpl13189417387',//数据库的密码
database:'test1',//要连接的数据库名称
connectionLimit:1//创建连接池的数量
}
}

结果展示:

image

mysql2模块中的query()方法

  • 官方文档

  • query('操作数据库的sql语句',携带的变量)里面接收两个参数

    1. 参数1是操作数据库的sql语句,用来实现通过node来对数据库进行增删改查
    2. 参数2是在进行操作数据库时,对携带过去的参数进行一个集中管理

使用方法:

  1. 简单形式(一个参数[sql语句])
await promisePool.query(
'select * from student where name="马保国" and gender=1'
)
//从student表格中查一个name=马保国且gender=1的数据
  1. 携带参数的形式(推荐使用)
await promisePool.query(
'select * from student where name=? and gender=?',
['马保国',1]
)
//从student表格中查一个name=马保国且gender=1的数据

nodeJS操作数据库的增删改查

增加数据(插入数据insert)

// node操作mysql数据库 - 增加数据

//引入express模块和mysql2模块
const express = require('express')
const mysql = require('mysql2')

// 创建服务器
const app = express()

app.get('/',async (req , res)=>{
// 1.创建连接池,进行操作
const config = getConfig()//2.创建数据库连接对象

// 3.创建数据库连接池(promise形式调数据)
const promisePool = mysql.createPool(config).promise()

// 4.使用query方法来操作数据库(里面填的是sql操作语句)***************************
var students = await promisePool.query(`
insert into student(name,score,gender,class_id) values (?,?,?,?)
`,['坤坤',60,0,2])//增加一条数据(坤坤,60,0,2)
//************************************************************************

// console.log(students[0]);//控制台上输出结果
res.send({
ok:1,
data: students[0]//输出到页面上
})
})

// 启动服务器
app.listen(3000,()=>{
console.log('服务器已启动,3000端口号正在监听...');
})

// 创建链接数据库函数
function getConfig(){
return {
host:'127.0.0.1',//域名
port: 3306,//端口号(mysql默认是3306)
user: 'root',//数据库的用户名
password: 'Zpl13189417387',//数据库的密码
database:'test1',//要连接的数据库名称
connectionLimit:1//创建连接池的数量
}
}
  • 结果展示:
    image

更改数据(update)

// 4.使用query方法来操作数据库(里面填的是sql操作语句)
var students = await promisePool.query(`
update student set score=?,class_id=? where name="坤坤" and gender=0`
,[50,1])//更改一条数据(坤坤,50,0,1)

//这里省略了上下文代码,与上面的增加数据是一致的,只不过是/****/部分有所不同而已
  • 结果展示
    image

删除数据(delete)

// 4.使用query方法来操作数据库(里面填的是sql操作语句)
var students = await promisePool.query(
`delete from student where name=? and gender=?`
,['坤坤',0])//删除一条数据(name=坤坤,gender=0)

//这里省略了上下文代码,与上面的增加数据是一致的,只不过是/****/部分有所不同而已
  • 结果展示
    image

查找数据(select)

  • 参考上面的基本使用
var students = await promisePool.query(
'select * from student where name=? and gender=?',
['马保国',1]
)//查询name=马保国,gender=1的数据
  • 结果展示:
    image