首页 > 其他分享 >用户中心项目总结

用户中心项目总结

时间:2024-01-22 14:33:07浏览次数:36  
标签:总结 Control 项目 request 用户 Access header add api

项目1总结

第一天

  1. ant design pro 初始化命令有更新,如下:

    npm i @ant-design/pro-cli -g
    pro create myapp
    

    Alt text

  2. umi ui 安装命令不再在ant design pro使用手册显示,命令如下:

    yarn add @umijs/preset-ui -D
    

    img

  3. spring initializr 不再支持java8,更换新建项目页面的服务器为阿里巴巴国内源,如下:

    https://start.aliyun.com/
    

    img

  4. 后端名词解释
    img

  5. MyBatis-Plus测试类问题

    • junit包的Test跟springboot没有直接的联系,所以需要使用RunWith来指定。

    • 如果引入的是import org.junit.Test;则需要添加@RunWith(SpringRunner.class),
      img

    • 如果引入的是import org.junit.jupiter.api.Test;则无需添加,直接使用@SpringBootTest注解
      img

第二天

  1. 设计数据库

    • 不要过度设计,允许开发过程中插入字段,但不要删除,尽量减少数据库修改

    • 使用逻辑删除方便数据找回

      image-20240104093917360

    • TRUNCATE 清空表数据

  2. mybatis-plus默认开启驼峰下划线转换,如需关闭需要在application文件中添加

    mybatis-plus:
      configuration:
        map-underscore-to-camel-case: false
    

    image-20240104112922686

第三天

  1. 请求参数很长,或者不知道多长时不建议用get

  2. @RestController 适用于编写restful风格的api,返回值默认为json类型

  3. 生成序列化UID没有选项,在如下菜单解决

    image-20240105111347202

  4. controller层倾向于对请求参数本身校验,不涉及业务逻辑本身(越少越好),service层是对业务逻辑的校验(有可能被controller之外的调用)

第四天

  1. logo

    125767990_0_final

  2. 解决跨域问题,使用代理

    image-20240106153800583

    之后,写所有api请求的时候都要加上/api前缀

    image-20240106153932942

  3. 虽然定义了LoginParams的类型,但是发给后台的并不是定义的类型,需要手动更改name字段。ts的定义可以理解为加一个语法提示。

    image-20240106155452475

    image-20240106155513567

  4. 最终完成,拿到数据

image-20240106155554309

第五天

  1. 用户头像

yvjing

  1. 更改AvatarDropdown.tsx中对应的字段后头像不显示的原因是,账号数据是有的,但对应的用户昵称的数据为空,加上后成功加载出来

    image-20240107194003528

  2. 当页面显示不全时,有可能是路由的问题。

    image-20240107194755719

  3. 写api接口时,这两处要对应

    image-20240107203416123

  4. 阶段性完成(调整行同高度后没有头像的会出现一个不好看的图标,就又返回原来了):

    image-20240107205724774

第六天

  1. @TableLogic注解表示该字段是标识逻辑删除。

image-20240109123851781

  1. 后端优化:

    1. 通用返回对象

    2. 封装全局异常处理

    3. 全局请求日志和登录校验

    4. 结构

      image-20240110200302593

  2. 前端优化

    1. 全局相应处理器参考https://blog.csdn.net/huantai3334/article/details/116780020

    2. image-20240110200331458

    3. /**
       * request 网络请求工具
       * 更详细的 api 文档: https://github.com/umijs/umi-request
       */
      import {extend} from 'umi-request';
      import {message} from "antd";
      import {history} from "@@/core/history";
      import {stringify} from "querystring";
      
      /**
       * 配置request请求时的默认参数
       */
      const request = extend({
        credentials: 'include', // 默认请求是否带上cookie
        // requestType: 'form',
      });
      
      /**
       * 所有请求拦截器
       */
      request.interceptors.request.use((url, options): any => {
        console.log(`do request url = ${url}`)
        return {
          url,
          options: {
            ...options,
            headers: {},
          },
        };
      });
      
      /**
       * 所有响应拦截器
       */
      request.interceptors.response.use(async (response, options): Promise<any> => {
        const res = await response.clone().json();
        if (res.code === 0) {
          return res.data;
        }
        if (res.code === 40100) {
          message.error("请先登录")
          history.replace({
            pathname: '/user/login',
            search: stringify({
              redirect: location.pathname,
            }),
          });
        } else {
          message.error(res.description)
        }
        return res.data;
      });
      
      export default request;
      

第七天

  1. exportStatic静态化配置,配置后bulid后会给每个目录生成静态化页面。

    image-20240113112452971

  2. 服务器安装nginx,运行时注意权限。

    image-20240113155929163

  3. mvn package -DskipTests

    编译打包配置,跳过测试。

    image-20240113181958194

  4. 成功启动

    image-20240113181935095

  5. nginx -s reload
    重启nginx服务

  6. nohup java -jar /project/user-center-backend/user-center-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
    

    后台启动后端项目,nohup与&要一起用

    image-20240113195608941

  7. 后端运行输入地址时要注意url路径、

    image-20240113201511140

  8. 宝塔面板部署网站后,如果没有反应,查看nginx配置,放行相应端口。

  9. 跨域问题nginx网关配置

    location ^~ /api/ {
        proxy_pass http://127.0.0.1:8080/api/;
        add_header 'Access-Control-Allow-Origin' $http_origin;
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers '*';
        if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Origin' $http_origin;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain; charset=utf-8';
            add_header 'Content-Length' 0;
            return 204;
        }
    }
    

10 本地登录成功不跳转问题

image-20240119185827424

选用了自己写的全局request请求文件,可能某些地方配置错误,暂时改回umi自动生成的request请求文件。

  1. 用户管理表格加载错误,数据类型不匹配:

    image-20240119191003895

原因前后端search方法的类型不同,将其更改一致:

后端UserController.java

image-20240119191043483

前端UserManage/index.tsx

image-20240119223813357

前端api.ts

image-20240119223840845

  1. 登录成功后页面不跳转问题:

    检查app.tsx的fetchUserInfo函数,发现返回类型不对应

    修改后:

    image-20240119224129989

    修改前:

    image-20240119224303096

    顺带查看一下api文件下的currentUser函数:

    1. 如果遇到请求地址不正确,尝试清除浏览器缓存刷新,以及遇到无法读取数据库的,重启nginx或者Java后端即可。

标签:总结,Control,项目,request,用户,Access,header,add,api
From: https://www.cnblogs.com/lym0518/p/17979977

相关文章

  • 图论总结——拓扑排序
    图论总结——拓扑排序例\(1\):排水系统(不是很模板的模板题)思路模板题,但是要进行分数约分,所以又不是很模板直接进行计算即可。注意计算过程中很可能爆\(long~~long\)类型范围,需要用\(int128\)类型进行存储。\(Code\)#include<bits/stdc++.h>#defineintlonglongusi......
  • 到底什么样的 Java 项目用 Solon 好???
    什么样的Java项目用Solon好就像华为讲的,不要因为爱国而特意买华为手机。Solon也是,有需要就用不需要就跳过(按正常的需求选择):信创需要国产化,应该用Solon或者SolonCloud(有案例)军工项目要国产化,应该用Solon或者SolonCloud(有案例)嵌入式设备,内存有限,算力差,可以用Solo......
  • RHCE(第二周用户管理
    一:初识用户和用户组一:用户用户:就是能够登录系统,获得系统中的资源。执行命令,每一个用户都有唯一的uid,系统识别的是uid,不是用户名1:linux中用户的分类超级管理员:root用户,拥有最高的权限uid为0普通用户:有一定的权限,可以通过root用户分配 用户的uid为1000到60000系统用户:不能......
  • 项目开发流程与角色
    一、项目研发流程  二、时间分配占比 三、公司人员架构  ......
  • 初学者如何学习编程(从2014到2023年十年编程工作总结)
    今天给大家分享一个话题,如何有效的学习编程,大家都知道,我是计算机专业毕业的,2008年开始学习编程,2014年研究生毕业后一直从事软件开发工作,先后在京东、爱奇艺、完美世界从事过软件开发工程师工作,具有十多年编程经验积累,所以我来讲这个话题,我是有发言权的,也具有一定的权威性。好的......
  • Oracle Partition 分区详细总结
    选中sql得表名,右键查看,可以观察到tab页最后一项有个“分区”的字样。增加分区相当于在sql中增加过滤条件。类似partitionby函数groupby是分组函数,partitionby是分区函数(像sum()等是聚合函数),注意区分。表空间如下所示点击查看代码partitionbylist(PROD_NUM)(partitio......
  • 股票买卖问题总结
    其实也是动态规划的一种变形,总的来说,是定义一个二维数组dp[i][j],i表示的是天数,j表示的状态,总的表示收益。最基础的就是有两种状态,dp[i][0]表示未持有股票,dp[i][1]表示持有股票。用动态规划的思想:dp[i][0],dp[i][1]都是从dp[i-1]推得的。只买卖一次:点击查看代码dp[i][0]=......
  • 基于taro搭建小程序多项目框架
    前言为什么需要这样一个框架,以及这个框架带来的好处是什么?从字面意思上理解:该框架可以用来同时管理多个小程序,并且可以抽离公用组件或业务逻辑供各个小程序使用。当你工作中面临这种同时维护多个小程序的业务场景时,可以考虑使用这种模式。灵感来自最近webpack的多项目打包构建......
  • 3款支持内网环境使用的国产办公软件,全方位满足信创用户需求
    当今时代,随着信息化的发展,办公软件已经成为现代办公不可或缺的一部分。然而,随着信创国产替代的推进,许多政企单位在内网环境下使用国外办公软件时会面临着各种问题,如数据安全、合规性、兼容性等。因此,越来越多的政企开始寻求国产办公软件的替代方案。今天给大家分享3款支持内网环境......
  • 【LeetCode 2494. 合并在同一个大厅重叠的活动】[MySQL 用户变量/Pandas]面向过程编程
    目录题目地址MySQL代码等效pandas代码题目地址https://leetcode.cn/problems/merge-overlapping-events-in-the-same-hall/MySQL代码#WriteyourMySQLquerystatementbelowwitht2as(select*#----只需要改动这里的逻辑,其他不要动。注意里面的语句是“顺序......