Node.js学习笔记
十六、
16.1 SQL 语法
16.2 SQL的WHERE 子句
16.3 SQL 的AND和OR 运算符
AND:
OR:
16.4 ORDER BY 子句升序排序
降序:
16.5 count (*)
16.6 创建表格
16.7 操作数据库步骤:
1.`// 1. 导入 mysql 模块
const mysql = require('mysql')
// 2. 建立与 MySQL 数据库的连接关系
const db = mysql.createPool({
host: '127.0.0.1', // 数据库的 IP 地址
user: 'root', // 登录数据库的账号
password: 'admin123', // 登录数据库的密码
database: 'my_db_01', // 指定要操作哪个数据库
})`
2.`// // 测试 mysql 模块能否正常工作
// db.query('select 1', (err, results) => {
// // mysql 模块工作期间报错了
// if(err) return console.log(err.message)
// // 能够成功的执行 SQL 语句
// console.log(results)
// }) `
3,`// 查询 users 表中所有的数据
// const sqlStr = 'select * from users'
// db.query(sqlStr, (err, results) => {
// // 查询数据失败
// if (err) return console.log(err.message)
// // 查询数据成功
// // 注意:如果执行的是 select 查询语句,则执行的结果是数组
// console.log(results)
// }) `
4.`// // 向 users 表中,新增一条数据,其中 username 的值为 Spider-Man,password 的值为 pcc123
// const user = { username: 'Spider-Man', password: 'pcc123' }
// // 定义待执行的 SQL 语句
// const sqlStr = 'insert into users (username, password) values (?, ?)'
// // 执行 SQL 语句
// db.query(sqlStr, [user.username, user.password], (err, results) => {
// // 执行 SQL 语句失败了
// if (err) return console.log(err.message)
// // 成功了
// // 注意:如果执行的是 insert into 插入语句,则 results 是一个对象
// // 可以通过 affectedRows 属性,来判断是否插入数据成功
// if (results.affectedRows === 1) {
// console.log('插入数据成功!')
// }
// }) `
5.// 演示插入数据的便捷方式
const user = { username: 'Spider-Man2', password: 'pcc4321' }
// 定义待执行的 SQL 语句
const sqlStr = 'insert into users set ?'
// 执行 SQL 语句
db.query(sqlStr, user, (err, results) => {
if (err) return console.log(err.message)
if (results.affectedRows === 1) {
console.log('插入数据成功')
}
})
6.`// 演示如何更新用户的信息
const user = { id: 6, username: 'aaa', password: '000' }
// 定义 SQL 语句
const sqlStr = 'update users set username=?, password=? where id=?'
// 执行 SQL 语句
db.query(sqlStr, [user.username, user.password, user.id], (err, results) => {
if (err) return console.log(err.message)
// 注意:执行了 update 语句之后,执行的结果,也是一个对象,可以通过 affectedRows 判断是否更新成功
if (results.affectedRows === 1) {
console.log('更新成功')
}
}) `
7.// 演示更新数据的便捷方式
const user = { id: 6, username: 'aaaa', password: '0000' }
// 定义 SQL 语句
const sqlStr = 'update users 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('更新数据成功')
}
})
8.// 删除 id 为 5 的用户
const sqlStr = 'delete from users where id=?'
db.query(sqlStr, 5, (err, results) => {
if (err) return console.log(err.message)
// 注意:执行 delete 语句之后,结果也是一个对象,也会包含 affectedRows 属性
if (results.affectedRows === 1) {
console.log('删除数据成功')
}
})
9.// 标记删除
// const sqlStr = 'update users set status=? where id=?'
// db.query(sqlStr, [1, 6], (err, results) => {
// if (err) return console.log(err.message)
// if (results.affectedRows === 1) {
// console.log('标记删除成功')
// }
// })
16.8 标记删除
十七 Web开发模式
17.1 web开发模式
17.2 HTTP协议的无状态性
17.3 什么是Cookie?
17.4 前后端的身份认证
cookie 不具有安全性
17.5 提高身份认证安全性
17.6 Session 的工作原理
17.7 配置express-session 中间件
所有请求都需要通过中间件处理
17.8 向 session 中存储数据
17.9 清空session
十八、JWT 认证机制
18.1 了解session 认证
18.2 JWT 工作原理
18.3 JWT 组成部分
18.4 使用方式
安装 JWT 相关的包