一个接口里面只能有一个 res.send 生效,如果有多个 res.send 时,要注意使用 return。 换言之,不是写了 res.send 之后,后面的代码就不执行了

步骤 1-4 如下
导入并注册
为 userRouter 所有的地址增加一个 api 前缀



调用所有的接口都会触发这个中间件
一个请求可能会有多个中间件,多个中间件共同享用的一份 res,req
所以可以在前面的中间件中设置一些自定义属性或者方法,提供给下游的中间件或者路由使用
可以有多个全局的中间件,按照注册的顺序执行

绑定在 router 上的中间件,只对这个路由实例有效

一般使用 app.use 全局注册,注册在路由后 捕获异常,防止项目要崩溃

express.json 解析 json 格式的请求体数据
express.urlencoded 解析 urlencoded 格式的请求体数据
express.static 托管静态资源,如图片、html、css


监听 req 的 data 和 end
自定义一个响应中间件





npm install mysql

增加
插入对应的字段


更改指定的值


直接删除一条数据
但是不建议这样做,数据一旦删除恢复就比较麻烦
使用标记删除,可以在表中设置一个类似 state 的状态字段,使用 update 更改这条数据的状态

JWT 由三部分组成,分别是 Header(头部)、Payload(有效载荷)、Signature(签名),通常用 . 分隔开
Header 和 Signature 是安全性相关的部分
Payload 是用户信息经过加密之后的字符串
npm install jsonwebtoken express-jwt
基础使用


对用户的密码进行加密处理
npm i bcryptjs



后端永远不要相信前端传来的数据,即使前端已经验证了 安装验证规则包
npm install joi
安装中间件,实现对表单数据的验证
npm install @escook/express-joi
新建用户信息模块?schema/user.js 定义验证规则

