个人简介
👀个人主页: 前端杂货铺
🙋♂️学习方向: 主攻前端方向,也会涉及到服务端(Node.js)
📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招)
🚀未来打算: 为中国的工业软件事业效力n年
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js🍒Three.js
🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧
文章目录
文末有投票,欢迎大家积极参与~~
大家好,这里是 前端杂货铺。回首一看,已经 近五十天 天没有更文了(深表歉意)。因为前段时间一直在 忙工作和毕设上的事,也没怎么学习新知识,就一直拖着没有更新…
别的不多说,接下来,请君听我讲述一下我这十几天的毕设历程吧!
我是从三月上中旬开始请假的,虽然在这之前也利用下班时间做了几天,但下班后的编码效果并 不尽人意。
因为后端(Node.js)的很多东西还不会,数据库设计的也不太合理,再加上每天晚上都会有一些报错的问题解决不了,那段下班后做毕设的时光真的很糟糕…
在迷茫与急躁中度过了几天,之后我便决定请一段时间的假,“全职” 来做毕业设计!
我的毕设从 UI 设计与复现、数据库设计、后端接口设计与实现、前后端交互 等都是自己 全权负责 的,自我感觉任务量还是比较大的(因为之前并没有这种全栈的开发经历)。但好在结果还不错,我用了 十几天的时间较完整地(因为现在还有些东西需要优化)完成了我的毕业设计!
在我们拿到毕设课题之后,我们就要对我们要实现的功能有个大致的了解了。其实不管是什么功能,都离不开增删改查,只不过是实现的方式和困难程度不太一样。
我的毕业设计的功能包含:
难度上来说,中规中矩。很多功能还是很常见的(但有些问题在解决的过程中也是困难重重,技术的广度和深度很是欠缺…)
其实本科的毕业设计中【xxx管理系统】或者【xxx平台】占的居多,我的选题就是一个【xxx平台】类型的。
由于我对 Java 了解的不多,所以在 服务端 的技术选型上我使用了 Node.js。
我毕设总体的技术选型:【Vue + Element ui + Koa2 + Sequelize + MySQL】,如果你对后端技术不是很了解,但前端知识掌握的不错的话,我觉得使用 Koa2 或者 Express 将会是个不错的选择(好学易上手)!
在数据库模型设计上,还是要根据自己的业务做出相应的设计。其实数据库模型的设计是 很重要 的一步,如果前期对数据库模型设计的不好,可能后期做工作的时候需要重新进行数据库模型的设计,那时候就会带来一些不必要的麻烦了…
说实话,我对数据库模型的设计也没有太多见解,大家多去看一些优秀毕设的数据库模型设计做一下参考吧!
但总的来说,我们要提前把需要的字段都设计好,还要设计好 主键、外键、以及各个字段的类型 等。
如果后端使用的是 Node.js,那么推荐你 使用 sequelize 去操作 MySQL(真的很好用!)
在明确完需求和和设计好数据库表结构之后,我们就要着手把我们项目的架子搭起来了。
如果你也是采用 前后端分离 的方式,那么就可以 创建两个工程,一个前端一个后端(我刚开始还犹豫在一个文件夹下怎么建目录更合理的问题,后来发现前后端分开创建是个更好的方式)。
前端 Vue:vue create xxx(前提是有node环境,并且安装了相应版本的脚手架),选择你要使用的 vue 版本(Vue2 | Vue3),之后可以按需进行一些配置,这个其实没啥难度,按需选择就可以了。
后端 Koa2:可以参考一下这篇文章 ——> Koa2环境搭建
毕竟这是前后端分离的项目,我们首先要解决的问题就是 跨域,要不然前后端根本交互不起来。
我们常用的解决跨域的方式有两种, 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)
)
这样跨域的问题就解决了,我们再写接口返回的数据就可以在前端进行相应的展示了。
总体的架子搭好之后,我们就可以着手去实现 设计并复现前端UI,实现接口,前后端交互等 工作了。
当然,在这个过程中肯定不会是一帆风顺的,各种各样的报错你都可能会遇到,但不要着急,看一下报错的原因,自己搞不懂的错误就去网上查资料,相信自己问题肯定会解决的。
我在功能实现上就遇到了各种各样的问题,有时候也是没有头绪,但经过了一番思考,查询资料及调试后也都顺利的解决了。
千万不要把毕设想的多么难,其实本科的毕业设计难度真的没那么高,基础差不多足矣完成它,千万不要畏惧。只要思想不滑坡,方法总比困难多!
在把基本的功能都实现之后呢,我们的项目中还存在一些的小 bug(包括一些需要优化的点)。
我们要知道一个完整的项目必定是功能健全,能抗能打的。我们把基本的功能要求实现后,并不代表我们已经完成了毕业设计。就像玉石一样,需要我们反复打磨抛光!
在这一点上,我还没有做好,接下来会利用下班后的时间进行一系列的优化!
毕业设计是我们大学四年 最后一个 也是 最有意义 的一个作业了(算是给我们的这四年一个交代吧),希望大家都能顺利的完成它并顺利的毕业!
各位加油,有什么问题和想法欢迎一起交流讨论!
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我正在开发我的第一个Rubygem,并捆绑了cucumber、rspec和shoulda-matches进行测试。当我运行rspec时,出现以下错误:/app/my_gem/spec/spec_helper.rb:6:in`':undefinedmethod`configure'forShoulda::Matchers:Module(NoMethodError)这是我的gem规范:#my_gem.gemspec...Gem::Specification.newdo|spec|......spec.add_development_dependency"activemodel"spec.a
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.