闭关十几天,我完成了我的毕业设计

这篇具有很好参考价值的文章主要介绍了闭关十几天,我完成了我的毕业设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端(Node.js)
📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招)
🚀未来打算: 为中国的工业软件事业效力n年
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js🍒Three.js
🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧


一、前言

大家好,这里是 前端杂货铺。回首一看,已经 近五十天 天没有更文了(深表歉意)。因为前段时间一直在 忙工作和毕设上的事,也没怎么学习新知识,就一直拖着没有更新…

别的不多说,接下来,请君听我讲述一下我这十几天的毕设历程吧!

二、毕设经历(上)

1、初期

我是从三月上中旬开始请假的,虽然在这之前也利用下班时间做了几天,但下班后的编码效果并 不尽人意。

因为后端(Node.js)的很多东西还不会,数据库设计的也不太合理,再加上每天晚上都会有一些报错的问题解决不了,那段下班后做毕设的时光真的很糟糕…

在迷茫与急躁中度过了几天,之后我便决定请一段时间的假,“全职” 来做毕业设计!

我的毕设从 UI 设计与复现数据库设计后端接口设计与实现前后端交互 等都是自己 全权负责 的,自我感觉任务量还是比较大的(因为之前并没有这种全栈的开发经历)。但好在结果还不错,我用了 十几天的时间较完整地(因为现在还有些东西需要优化)完成了我的毕业设计!

2、明确功能

在我们拿到毕设课题之后,我们就要对我们要实现的功能有个大致的了解了。其实不管是什么功能,都离不开增删改查,只不过是实现的方式和困难程度不太一样。

我的毕业设计的功能包含:

  • 注册(包括用户是否已存在,格式校验)
  • 登录(用户名密码对比,格式校验)
  • 作品上传(按要求填写并完成作品发布)
  • 个人中心(修改个人信息、修改密码)
  • 分类展示(按类型进行展示)
  • 点赞(点赞或取消点赞某一个作品)
  • 评论(评论某个作品)
  • 评分(给某个作品评分并且只能评一次,并计算出综合评分)
  • 关注(关注和取消关注,自己不能关注自己,获取关注列表和粉丝列表并实现相应的跳转)
  • 管理(增删改查)
  • 交易(购买人减金币,被买的加金币,金币不够不能购买,自己不能购买自己的,生成相应的订单)
  • 每日签到(用于获取悦币)
  • 数据广场(用于用户查看网站相关数据)

难度上来说,中规中矩。很多功能还是很常见的(但有些问题在解决的过程中也是困难重重,技术的广度和深度很是欠缺…)

3、技术选型

其实本科的毕业设计中【xxx管理系统】或者【xxx平台】占的居多,我的选题就是一个【xxx平台】类型的。

由于我对 Java 了解的不多,所以在 服务端 的技术选型上我使用了 Node.js

我毕设总体的技术选型:【Vue(JavaScript框架) + Element ui(UI库) + Koa2(Node.js框架) + Sequelize(操作数据库的ORM工具) + MySQL(非关系型数据库) + Redis(缓存数据库)】,如果你对后端技术不是很了解,但前端知识掌握的不错的话,我觉得使用 Koa2 或者 Express 将会是个不错的选择(好学易上手)!

4、数据库模型设计

在数据库模型设计上,还是要根据自己的业务做出相应的设计。其实数据库模型的设计是 很重要 的一步,如果前期对数据库模型设计的不好,可能后期做工作的时候需要重新进行数据库模型的设计,那时候就会带来一些不必要的麻烦了…

说实话,我对数据库模型的设计也没有太多见解,大家多去看一些优秀毕设的数据库模型设计做一下参考吧!

但总的来说,我们要提前把需要的字段都设计好,还要设计好 主键、外键、以及各个字段的类型 等。

如果后端使用的是 Node.js,那么推荐你 使用 sequelize 去操作 MySQL(真的很好用!)

三、毕设经历(中)

1、搭架子

在明确完需求和和设计好数据库表结构之后,我们就要着手把我们项目的架子搭起来了。

如果你也是采用 前后端分离 的方式,那么就可以 创建两个工程,一个前端一个后端(我刚开始还犹豫在一个文件夹下怎么建目录更合理的问题,后来发现前后端分开创建是个更好的方式)。

前端 Vuevue create xxx(前提是有node环境,并且安装了相应版本的脚手架),选择你要使用的 vue 版本(Vue2 | Vue3),之后可以按需进行一些配置,这个其实没啥难度,按需选择就可以了。

后端 Koa2:可以参考一下这篇文章 ——> Koa2环境搭建

2、axios 的二次封装

对 axios 进行二次封装有很多的好处,可以方便 api 请求统一管理,从而完成对 API 的解耦。

import axios from 'axios'


// 创建 axios 对象
const instance = axios.create({
    baseURL: 'http://localhost:3000', // 根路径
    timeout: 2000, // 网络延时
    withCredentials: true 
})

// 添加请求拦截器 => 前端给后端的参数【还没到后端响应】
instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器 => 后端给前端的数据【后端返回给前端的东西】
instance.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

// 最终返回的对象
export default instance

3、CORS 解决跨域

毕竟这是前后端分离的项目,我们首先要解决的问题就是 跨域,要不然前后端根本交互不起来。

我们常用的解决跨域的方式有两种, Nginx 和 CORS

我是使用的 CORS 跨域,因为这样可以少启动一个服务,还是挺香的。

CORS 解决跨域:

首先要安装 koa2-cors

npm install --save koa2-cors
/**
 * @description CORS解决跨域
 * @author zahuopu
 */
const CORS_CONFIG = {
    origin: 'http://localhost:8080', // 前端地址
    credentials: true, // 是否携带 cookie
    allowMethods: ["GET", "POST", "DELETE", "PATCH"], // 设置所允许的HTTP请求方法
    exposeHeaders: ["Authorization"], // 让浏览器能访问到其他的响应头
    allowHeaders: ["Content-Type", "Authorization", "Accept"] // 设置服务器支持的所有头信息字段
}

module.exports = {
    CORS_CONFIG
}

之后在 app.js 文件中引入并使用即可

const Koa = require('koa')
const cors = require('koa2-cors')
const { CORS_CONFIG } = require('./conf/cors')

app.use(
  cors(CORS_CONFIG)
)

这样跨域的问题就解决了,我们再写接口返回的数据就可以在前端进行相应的展示了。

4、功能实现

总体的架子搭好之后,我们就可以着手去实现 设计并复现前端UI,实现接口,前后端交互等 工作了。

当然,在这个过程中肯定不会是一帆风顺的,各种各样的报错你都可能会遇到,但不要着急,看一下报错的原因,自己搞不懂的错误就去网上查资料,相信自己问题肯定会解决的。

我在功能实现上就遇到了各种各样的问题,有时候也是没有头绪,但经过了一番思考,查询资料及调试后也都顺利的解决了。

千万不要把毕设想的多么难,其实本科的毕业设计难度真的没那么高,基础差不多足矣完成它,千万不要畏惧。只要思想不滑坡,方法总比困难多!

四、毕设经历(下)

在把基本的功能都实现之后呢,我们的项目中还存在一些的小 bug(包括一些需要优化的点)。

我们要知道一个完整的项目必定是功能健全,能抗能打的。我们把基本的功能要求实现后,并不代表我们已经完成了毕业设计。就像玉石一样,需要我们反复打磨抛光!

在这一点上,我还没有做好,接下来会利用下班后的时间进行一系列的优化!

五、写在最后

毕业设计是我们大学四年 最后一个 也是 最有意义 的一个作业了(算是给我们的这四年一个交代吧),希望大家都能顺利的完成它并顺利的毕业!

各位加油,有什么问题和想法欢迎一起交流讨论!文章来源地址https://www.toymoban.com/news/detail-408328.html


到了这里,关于闭关十几天,我完成了我的毕业设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2019 - 2023,再见了我的大学四年

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端(Node.js 等) 📃 个人状态: 2023届本科毕业生,已拿多个前端 offer(秋招) 🚀 未来打算: 为中国的工业软件事业效力 n 年 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/

    2024年02月10日
    浏览(43)
  • 最新计算机毕业设计源码开源啦,java毕业设计,python毕业设计,c++毕业设计,php毕业设计,Android毕业设计,小程序毕业设计

    免费毕业设计 (mmkjsh.cn) http://www.mmkjsh.cn/ 2023最新计算机毕业设计源码开源啦,java毕业设计,python毕业设计,c++毕业设计,php毕业设计,Android毕业设计,小程序毕业设计 。     内容包括: 1、前期环境搭建 2、搭建自己的博客 3、编程资源 4、毕业设计源码与论文 09/04宿舍洗衣

    2024年02月10日
    浏览(51)
  • 学网络安全的过程 ,差点要了我的命

    我真的好像感慨一下,这个世界真的给计算机应届生留活路了吗? 看着周围的同学,打算搞前端、JAVA、C、C++的,一个两个去跑去应聘。你以为是00后整治职场? 真相是主打一个卑微:现阶段以学习为主( 工资能活命就行 );学习能力强( 让我干什么都行 );能抗压( 加

    2024年02月05日
    浏览(48)
  • 谁偷走了我的存储容量?预留空间OP参上!

    ​ 大家好,我是五月。 不知道你有没有发现,每当买回来一块U盘,插入电脑发现永远比所标的容量小。 到底是谁偷走了我的容量? 真凶就是预留空间(Over Provisioning),简称OP。 了解内存开发的都会知道,一块Flash中能用的空间并不会全部用来做用户空间。 还有一部分空间

    2024年02月11日
    浏览(32)
  • 毕业设计选题有哪些,如何写好一篇毕业设计(毕业论文), 毕业设计100篇,毕业设计模版,毕设源码分享,毕业设计合集,计算机,软件工程,网络工程,大数据专业毕业设计选题有哪些(附源码获取途径)

    ✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 大家好!我是你们的毕设周学长,知道你们即将面临毕业设计的任务,所以

    2024年02月08日
    浏览(64)
  • 2023网络安全毕业设计选题推荐 - 信息安全毕业设计题目大全

    🔥 毕业季马上就要开始了,不少同学询问学长管理选题开题类的问题。 今天跟大家分享信息安全毕设选题 ~ 最新的信息安全(网络安全)专业毕设选题,难度适中,适合作为毕业设计,大家参考。 学长整理的题目标准: 相对容易 工作量达标 题目新颖 最近非常多的学弟学妹问

    2024年02月13日
    浏览(48)
  • [毕业设计]最新最全计算机专业毕业设计选题推荐精选汇总

    目录 ①javaweb信息管理系统或web应用选题(应用开发类)  ②微信小程序开发方向  ③游戏动画、数字媒体方向 ④深度学习、机器学习方向  ⑤算法研究方向  ⑥物联网、嵌入式方向 ⑦信息安全、网络安全 ⑧大数据分析、大数据预测 ⑨Matlab 选题迷茫 选题的重要性 选题指导 对

    2024年02月07日
    浏览(65)
  • 基于ssm框架的毕业设计管理系统毕业设计源码211633

    摘  要 随着科学技术的飞速发展,各行各业都在努力现代先进技术接轨,通过科技手段提高自身的优势;对于 毕业设计管理系统 当然也不能排除在外,随着网络技术的不断成熟,带动了 毕业设计管理系统 ,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,

    2024年02月05日
    浏览(40)
  • java8 Instant 计算方法耗时, 再见了我的System.currentTimeMillis()

    以下是一个 Java Instant 计算方法耗时的示例代码: 在上述示例代码中,我们使用 Instant.now() 方法获取当前时间,并在执行需要计算耗时的方法前后分别获取当前时间,然后使用 Duration.between() 方法计算两个时间点之间的时间差,并将结果输出到控制台。 在示例代码中,我们使

    2023年04月10日
    浏览(45)
  • (附源码)基于ssm框架的毕业设计管理系统 毕业设计211633

    摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于毕业设计管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了毕业设计管理系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包