Node.js教程笔记(四)数据库与身份认证

news2024/11/23 15:27:33

学习目标

1、能够知道如何配置Mysql数据库环境

2、能够认识并使用常见的SQL语句操作数据库

3、能够在Express中操作Mysql数据库

4、能够了解Session的实现原理

5、能够了解JWT的实现原理

目录

1、数据库的基本概念

2、安装并配置Mysql

3、Mysql的基本使用

4、在Express中操作Mysql

5、前后端的身份认证

1、数据库的基本概念

1.1、什么是数据库

在这里插入图片描述

1.2、常见的数据库及分类

在这里插入图片描述

1.3、传统型数据库的数据组织结构

在这里插入图片描述

1、Excel的数据组织结构

在这里插入图片描述

2、传统型数据库的数据组织结构

在这里插入图片描述

3、实际开发中库、表、行、字段的关系

在这里插入图片描述

2、安装并配置MySQL

1、了解需要安装哪些MySQL相关的软件

在这里插入图片描述

2、安装Mysql(网上挺多的教程的,在次略过)

在这里插入图片描述
在这里插入图片描述

3、mysql的基本使用

3.1、使用mysql workbench管理数据库

1、连接数据库

在这里插入图片描述

3.2、使用sql管理数据库

1、什么是sql

在这里插入图片描述

2、sql能做什么

在这里插入图片描述

3、sql的学习目标

在这里插入图片描述

3.3 - 3.6、select - insert - update - delete

3.7、sql的where子句

在这里插入图片描述
在这里插入图片描述

3.8、SQL的and和or

在这里插入图片描述

3.9、sql的order by子句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.9、sql的 count(*) 子句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、在项目中操作mysql

4.1、在项目中操作数据库的步骤

在这里插入图片描述

4.2、安装与配置mysql模块

1、安装mysql模块

在这里插入图片描述

2、配置mysql模块

在这里插入图片描述

3、测试mysql模块能否正常工作

在这里插入图片描述

4.3、使用mysql模块操作mysql数据库

1、查询数据

在这里插入图片描述

2、插入数据

在这里插入图片描述

3、插入数据的便捷方式

在这里插入图片描述

4、更新数据

在这里插入图片描述

5、更新数据的便捷方式

在这里插入图片描述

6、删除数据

在这里插入图片描述

7、标记删除

在这里插入图片描述

5、前后端的身份认证

5.1、Web开发模式

在这里插入图片描述

1、服务器渲染的Web开发模式

在这里插入图片描述

2、服务器渲染的优缺点

在这里插入图片描述

3、前后端分离的Web开发模式

在这里插入图片描述

4、前后端分离的优缺点

在这里插入图片描述

5、如何选择Web开发模式

在这里插入图片描述

5.2 身份认证

1、什么是身份认证

在这里插入图片描述

2、为什么需要身份认证

在这里插入图片描述

3、不同开发模式下的身份认证

在这里插入图片描述

5.3、Session认证机制

1、HTTP协议的无状态性

在这里插入图片描述

2、如何突破HTTP无状态的限制

在这里插入图片描述

3、什么是Cookie

在这里插入图片描述

4、Cookie在身份认证中的作用

在这里插入图片描述

5、Cookie不具有安全性

在这里插入图片描述

6、提高身份认证的安全性

在这里插入图片描述

7、session的工作原理

在这里插入图片描述

5.4、在Express中使用Session认证

1、安装express-session中间件

在这里插入图片描述

2、配置express-session中间件

在这里插入图片描述

5.5、JWT认证机制

1、了解Session认证的局限性

在这里插入图片描述

2、什么是JWT

在这里插入图片描述

3、JWT的工作原理

在这里插入图片描述

4、JWT的组成部分

在这里插入图片描述

5、JWT的三个部分各自代表的含义

在这里插入图片描述

6、JWT的使用方式在这里插入图片描述## 5.6、在Express中使用JWT

1、安装JWT相关的包

在这里插入图片描述

2、导入JWT相关的包

在这里插入图片描述

3、定义secret密钥

在这里插入图片描述

4、在登录成功后生成JWT字符串

在这里插入图片描述

5、将JWT字符串还原为JSON对象

在这里插入图片描述

6、使用req.user获取用户信息

在这里插入图片描述

7、捕获解析JWT失败后产生的错误

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全球数十万客户选择亚马逊云科技数据库服务构建自己的应用

日前,全球市场分析机构Gartner发布《2022云数据库管理系统魔力象限》报告(2022 Gartner Magic Quadrant™ for Cloud Database Management Systems)。Gartner数据显示,整个数据库管理系统市场在2021年实现强劲增长22.3%&#xff0…

【五六七人口普查】我国省市两级各行业门类人口及三次产业人口比重

人口数据是我们在各项研究中最常使用的数据!之前我们分享过第七次人口普查(简称七普)的数据!很多小伙伴拿到数据后都反馈数据非常好用,同时很多小伙伴咨询有没有前面几次人口普查的数据,这样方便做人口变化…

【Java】final关键字和final的四种用法

final定义 final翻译成中文的意思是 “最终” , 它是java当中的一个关键字,使用final修饰的对象不允许修改或替换其原始值或定义。 假如当final修饰一个类的时候,是不能被其他类继承的。 final的四种用法 修饰类修饰方法修饰变量修饰参数 1.…

会话保持技术:cookie、session

目录 1.概述 2.cookie 3.session 1.概述 会话保持技术的出现是因为HTTP 是一个无状态的协议,这一次请求和上一次请求是没有任何关系的,互相无法感知,上一次请求干了什么?这一次请求完全不知道,会话保持技术就是为了…

Python协程asyncio异步编程结合uvloop性能提升

asyncio介绍 和我们以前常用的gevent模块相似,asyncio模块也是在Python中实现协程的模块区别是gevent是第三方库,通过greenlet实现协程,遇到I/O自动切换(自动挡)asyncio是Python 3.4版本引入的标准库,asyc…

GitHub访问问题与FastGithub下载及使用(详细篇)

前言 📜 “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等,IT技术干货、学习经验、面试资料、刷题记录,以及遇到的问题和解决方案,记录自己成长的点滴 目录 前言 FastGithub的介绍 FastGithub的下载 FastGithub的安装及…

23种设计模式之综合实战篇

23种设计模式之综合实战篇1. 设计模式概述1.1 什么是设计模式1.2 设计模式的好处2. 设计原则分类3. 详解3.1 单一职责原则3.2 开闭原则3.3 里氏代换原则3.4 依赖倒转原则3.5 接口隔离原则3.6 合成复用原则3.7 迪米特法则4. Awakening1. 设计模式概述 我们的软件开发技术也包括一…

微刊:做了很多的16S三代测序,文章可以这样写~

三代的黄金时代已经来临!在扩增子方面与二代相比其优势明显:1:获得的序列更长,信息量更多更准确!2;鉴定高精准,“种”水平物种鉴定中实现了大幅提升。3:PCR扩增无GC偏好性,数据更准确。4:V1-V9全…

MySQL多表操作的外键约束

目录 一.多表关系 一对一关系 一对多/多对一关系 多对多关系 二.外键约束 特点 创建外键约束 方式1-在创建表时设置外键约束 方式2-在创建表时设置外键约束 在外键约束下的操作 1.数据插入 2.删除数据 3.删除外键约束 外键约束-多对多关系 操作 一.多表关系 MySQL多表…

51单片机学习笔记-12LCD1602液晶屏

12 LCD1602液晶屏 [toc] 注:笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 注:工程及代码文件放在了本人的Github仓库。 12.1 LCD1602介绍 LCD1602(Liquid Crystal Display)…

【Java 数据结构】实现一个二叉搜索树

目录 1、认识二叉搜索树 2、实现一个二叉搜索树 2.1 成员变量 2.2 insert 方法 2.3 search 方法 2.4 remove 方法(重点) 3、二叉搜索树总结 1、认识二叉搜索树 从字面上来看,它只比二叉树多了搜索两个字,我们回想一下,如果要是在二…

linux性能优化-CPU上下文切换

疑问:进程在竞争CPU时并没有真正运行,为什么还会导致系统的负载升高? 因为存在CPU上下文切换。 linux系统说明 Linux是一个多任务操作系统,它支持远大于CPU数量的任务同时运行。当然,这些任务实际上并不是真的在同时…

pytorch-lightning中使用wandb实现超参数搜索

由于最近涉及下游任务微调,预训练任务中的框架使用的是pytorch-lightning,使用了典型的VLP(vision-language modeling)的训练架构,如Vilt代码中:https://github.com/dandelin/ViLT,这类架构中只涉及到预训练&#xff0…

51单片机学习-5定时器与中断

5 定时器与中断 [toc] 注:笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 注:工程及代码文件放在了本人的Github仓库。 5.1 定时器原理与中断系统 5.1.1 定时器原理 CPU的时序指标有: 振…

C语言预处理命令是什么?

C语言源文件要经过编译、链接才能生成可执行程序:1) 编译(Compile)会将源文件(.c文件)转换为目标文件。对于 VC/VS,目标文件后缀为.obj;对于GCC,目标文件后缀为.o。编译是针对单个源…

ESP32设备驱动-ADS1015(ADC)驱动

ADS1015(ADC)驱动 1、ADS1015介绍 ADS1015 是一款具有 12 位分辨率的精密模数转换器 (ADC),采用超小型无引线 QFN-10 封装或 MSOP-10 封装。 ADS1015 的设计考虑了精度、功率和易于实施。 ADS1015 具有板载基准和振荡器。 数据通过 I2C 兼容的串行接口传输; 可以选择四个 I…

Portapack应用开发教程(十八)NavTex接收 C

有段时间没研究NavTex了,这段时间打算捡起来继续搞。 上一篇文章中,我用frisnit生成了wav文件。然后再用gnuradio观察波形,发现波形确实能与frisnit中的描述以及python解码程序中的dictionary对应上。 接下来,我要重点想办法自己…

Rust机器学习之petgraph

Rust机器学习之petgraph 图作为一种重要的数据结构和表示工具在科学和技术中无处不在。因此,许多软件项目会以各种形式用到图。尤其在知识图谱和因果AI领域,图是最基础的表达和研究工具。Python有著名的NetworksX库,便于用户对复杂网络进行创…

apt命令详解

apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。 apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 apt 命令执行需要超级管理员权限(root)。前些日子…

基于java ssm springboot宠物用品商城系统

基于java ssm springboot宠物用品商城系统 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…