-
通过 mysql 模块 链接到 MySQL 数据库
-
通过 mysql 模块 执行 SQL 语句
在终端命令中 安装mysql 模块 将mysql安装为项目依赖包
2.配置mysql 模块 在使用 mysql 模块操作 MySQL 数据库之前, 必须先对 mysql 模块进行必要的配置npm i mysql
3.在所在文件夹终端 安装express模块导入mysql 模块
const mysql = require('mysql')
//建立与mysql 数据库的链接
const db = mysql.createPool({
host: '127.0.0.1', //数据库的IP 地址
user: 'root', //登录数据库的账号
password: 'root', //登录数据库的密码
database: 'web67' //指定要操作哪个数据库
})
4.创建服务器npm i express
5.配置中间件//导入 express
const express = require('express')
//创建服务器
const app = express()
........其它代码
//启动服务器
app.listen(3000, () => {
console.log('服务器启动于 http://127.0.0.1:3000');
})
配置中间件 中间件配置放在 路由的上面 express.urlencoded 解析表单以 post 方式提交过来的数据
6.查询数据app.use(express.urlencoded({ extended: false }))
将数据返回给客户端
我们通过postman 向服务器发送请求 请求到的数据需要返回给客户端
1. 安装express 模块
2.导入express 模块
3.创建服务器
4.启动服务器
5.注册路由 通过db.query 来执行sql 语句 如果执行成功, 将数据响应给客户端
7.插入数据//注册路由 将数据返回给客户端
app.get('/getuser', (req, res) => {
//通过db.query 来执行sql 语句
//mysql 的查询语句 :select * from users 查询users 表中的所有数据
db.query('select * from users', (err, data) => {
//如果查询失败 提示用户
if (err) return console.log(err.message);
//如果没有数据 提示用户数据为空
if (data.length === 0) return console.log('表里面没有数据库');
//console.log(data);
//如果执行成功 将数据响应给客户端
res.send({
status: 0,
msg: '数据获取成功',
data
})
})
})
给users 中间添加用户名 与 密码
1. 创建对应的路由
2.通过req.body 来获取客户端提交过来的数据
3.配置中间件 express.urlencoded 解析表单以post 方式提交过来的数据 中间件应该放置在 路由的上面
4.执行sql 语句
5.如果失败 就提示用户, 判断err 如果是一个对象, 执行失败
6.如果知道数据已经写入到数据库中, 判断受影响的行数(affectedRows) .看其值是不是1, 如果不是1 就表示添加失败, 如果是1 就表示添加成功.
7.向客户端响应数据
8.更新数据//给users 中添加用户名与密码
app.post('/adduser', (req, res) => {
//通过req.body 来获取客户端提交过来的数据
const data = req.body
//执行sql 语句 英文的? 表示占位符 insert into users set 插入新用户
const sql = 'insert into users set ?'
db.query(sql, data, (err, data) => {
//如果写入失败, 提示用户 判断err如果是一个对象, 执行失败
if (err) return console.log(err.message);
//判断受影响的行数(affectedRows)看其值是不是 1
if (data.affectedRows !== 1) return console.log('数据写入失败');
//如果写入成功 向客户端响应数据
res.send({
status: 0,
msg: '数据写入成功'
})
})
})
根据id来更新用户名
1. 创建对应的路由
2.通过req.body 来获取客户端提交过来的数据
3.配置中间件 express.urlencoded 解析表单以post 方式提交过来的数据 中间件应该放置在 路由的上面
4.执行sql 语句
5.如果失败 就提示用户, 判断err 如果是一个对象, 执行失败
6.如果知道数据已经更新到数据库中, 判断受影响的行数(affectedRows) .看其值是不是1, 如果不是1 就表示更新失败, 如果是1 就表示更新成功.
7.向客户端响应数据
9.删除数据//创建路由 根据id 来更新用户名
app.post('/updateuser', (req, res) => {
//通过req.body 来获取客户端提交过来的数据
const body = req.body
//构建SQL语句
const sql = 'update users set ? where id = ?'
//执行SQL语句
db.query(sql, [body, body.id], (err, data) => {
//如果失败 就提示用户 判断 err 如果是一个对象 执行失败
if (err) return console.log(err.message);
//如果知道数据已经更新成功, 判断受影响的行数 , 看其值是不是1 如果不是1 就表示更新失败, 如果值等于1 就表示更新成功
if (data.affectedRows !== 1) return console.log('更新数据失败');
//向客户端响应数据
res.send({
status: 0,
msg: '更新数据成功'
})
})
})
根据 id 来删除数据
1.通过req.params 来获取动态参数
2.构建sql 语句
3.构建sql 语句
4.如果失败 就提示用户, 判断err 如果是一个对象, 执行失败
5.如果知道数据已经从数据库中删除, 判断受影响的行数(affectedRows) .看其值是不是1, 如果不是1 就表示删除失败, 如果是1 就表示删除成功.
6.向客户端响应数据
在项目中操作 MySQL 代码//根据 id 来删除数据
//通过req.params 来获取动态参数
app.get('/deluser/:id', (req, res) => {
const id = req.params.id
//构建sql 语句 第二句sql语句 执行后删除了找不回来 通常使用第一句来删除
const sql = 'update users set status = 0 where id = ?'
// const sql = 'delete from users where id = ? '
通过 db.query
db.query(sql, id, (err, data) => {
//如果失败 就提示用户 判断err 如果是一个对象 执行失败
if (err) return console.log(err.message);
if (data.affectedRows !== 1) return console.log('删除失败');
//向客户响应数据
res.send({
status: 0,
msg: '删除成功'
})
})
})
//安装mysql 模块
//导入mysql 模块
const mysql = require('mysql')
//在所在文件夹终端 安装express模块
//导入 express
const express = require('express')
//创建服务器
const app = express()
//建立与mysql 数据库的链接
const db = mysql.createPool({
host: '127.0.0.1', //数据库的IP 地址
user: 'root', //登录数据库的账号
password: 'root', //登录数据库的密码
database: 'web67' //指定要操作哪个数据库
})
//配置中间件 中间件配置放在 路由的上面 express.urlencoded 解析表单以 post 方式提交过来的数据
app.use(express.urlencoded({ extended: false }))
//注册路由 将数据返回给客户端
app.get('/getuser', (req, res) => {
//通过db.query 来执行sql 语句
//mysql 的查询语句 :select * from users 查询users 表中的所有数据
db.query('select * from users', (err, data) => {
//如果查询失败 提示用户
if (err) return console.log(err.message);
//如果没有数据 提示用户数据为空
if (data.length === 0) return console.log('表里面没有数据库');
//console.log(data);
//如果执行成功 将数据响应给客户端
res.send({
status: 0,
msg: '数据获取成功',
data
})
})
})
//给users 中添加用户名与密码
app.post('/adduser', (req, res) => {
//通过req.body 来获取客户端提交过来的数据
const data = req.body
//执行sql 语句 英文的? 表示占位符 insert into users set 插入新用户
const sql = 'insert into users set ?'
db.query(sql, data, (err, data) => {
//如果写入失败, 提示用户 判断err如果是一个对象, 执行失败
if (err) return console.log(err.message);
//判断受影响的行数(affectedRows)看其值是不是 1
if (data.affectedRows !== 1) return console.log('数据写入失败');
//如果写入成功 向客户端响应数据
res.send({
status: 0,
msg: '数据写入成功'
})
})
})
//创建路由 根据id 来更新用户名
app.post('/updateuser', (req, res) => {
//通过req.body 来获取客户端提交过来的数据
const body = req.body
//构建SQL语句
const sql = 'update users set ? where id = ?'
//执行SQL语句
db.query(sql, [body, body.id], (err, data) => {
//如果失败 就提示用户 判断 err 如果是一个对象 执行失败
if (err) return console.log(err.message);
//如果知道数据已经更新成功, 判断受影响的行数 , 看其值是不是1 如果不是1 就表示更新失败, 如果值等于1 就表示更新成功
if (data.affectedRows !== 1) return console.log('更新数据失败');
//向客户端响应数据
res.send({
status: 0,
msg: '更新数据成功'
})
})
})
//根据 id 来删除数据
//通过req.params 来获取动态参数
app.get('/deluser/:id', (req, res) => {
//通过req.params 来获取动态参数
const id = req.params.id
//构建sql 语句 第二句sql语句 执行后删除了找不回来 通常使用第一句来删除
const sql = 'update users set status = 0 where id = ?'
// const sql = 'delete from users where id = ? '
//执行SQL 通过 db.query
db.query(sql, id, (err, data) => {
//如果失败 就提示用户 判断err 如果是一个对象 执行失败
if (err) return console.log(err.message);
//如果知道数据已经删除成功, 判断受影响的行数 , 看其值是不是1 如果不是1 就表示删除失败, 如果值等于1 就表示删除成功
if (data.affectedRows !== 1) return console.log('删除失败');
//向客户响应数据
res.send({
status: 0,
msg: '删除成功'
})
})
})
//启动服务器
app.listen(3000, () => {
console.log('服务器启动于 http://127.0.0.1:3000');
})



