Skip to content

Latest commit

 

History

History
35 lines (28 loc) · 1.9 KB

NOTE.MD

File metadata and controls

35 lines (28 loc) · 1.9 KB

在 app.js 中注册各种中间件 -- 放在最前面的

-- 处理静态资源的
-- 处理 post 请求的
-- 处理 cookie 的

注册路由中间件 -- 放在中间

-- app.use('一级路由', controller)
-- controller 控制器
    -- 1. 处理 URl 传递的参数 req.query / req.body / req.params
    -- 2. 连接数据库进行增删改查 
        --2.1 创建 mogoose scheme 模型
        --2.2 通过模型 增删改查 (操作数据库是异步的,返回的是一个promsie)
    -- 3. 数据库操作完毕后,返回对应的数据,在 controller 中接收数据,返回给前端

--  

注册错误处理中间件 -- 放在最后

token 配合 jwt 和 axios 的请求响应拦截器 使用

-- 1. 在登录页面 (未登录的时候没有 token ,不用在请求拦截器设置)
    -- 登录成功后,后端生成 token 并且传递给前端 
        -- 前端的登录页面拿到返回的token ,同时在 axios 的响应拦截器中 将 token 存储在 localStorage 中
    -- 在别的页面进行接口请求时,在 axios 的请求拦截器中 添加 token 传给后端校验,
        -- 响应拦截器中重新存储最新的后端返回的 token

-- 2. 通过 node 的应用级中间件,进行全局的 路由和接口的 token 过期校验,
        -- 过滤掉 login 相关的接口和路由
        -- token 存在 (接口相关的) --> 判断返回的是 true 还是 false 
            -- verify 验证是 true(有效) --> 重新设置token过期时间 --> next()
            -- verify 验证是 false(过期) --> res.status(401).send({errCode:"-1",
            errorInfo:"token过期"})
            -- 前端在 响应拦截器的 错误处理函数,统一处理 401 时,删除本地存储的token,并且重定向到 login 页面
        -- token 不存在 (普通页面) --> next()