当前位置: 首页 > 编程日记 > 正文

软件工程实践2017 个人技术博客

目录

一、github项目管理

二、vue.js框架的搭建

三、通过axios调用api

四、javascript的Date对象

五、文件上传

六、javascript教程

一、github项目管理

参考资料:

  • 廖雪峰的git教程
  • 西瓜学长提供的github团队项目管理博客。

其中主要碰到的问题是代码冲突,就是我在fetch upstream时,在同一个文件中,本地代码和远程代码不同,命令行给的提示信息是没办法智能合并,必须要手动merge。我在vscode里找到了合并代码的方法,可以手动选择使用传入的代码还是本地的代码。
886318-20171117012212906-1991779643.jpg

二、vue.js框架的搭建

本次大作业,我们web前端选择的是vue.js框架。相比于我以往使用的Bootstrap框架来说,vue.js提供了一套更加完整的框架体系,能方便我们进行多人合作和前后端交互,它是一套构建用户界面的渐进式框架,便于与第三方库或既有项目整合,同时,当与单文件组件和Vue生态系统支持的库结合使用时,Vue也完全能够为复杂的单页应用程序提供驱动。同时,vue提供了一套我个人认为制作精美的组件,大家若使用此框架可尽情食用——>传送门
框架搭建参考资料:

  • vue安装教程
  • vue防坑指南

其中碰到一个模块的报错
886318-20171117110117437-965936092.png
我在防坑指南中找到了同样的情况

报错
Error: Cannot find module 'opn'
Error: Cannot find module 'webpack-dev-middleware'
Error: Cannot find module 'express'
Error: Cannot find module 'compression'
Error: Cannot find module 'sockjs'
Error: Cannot find module 'spdy'
Error: Cannot find module 'http-proxy-middleware'
Error: Cannot find module 'serve-index'
如果你用的是老版本的 vue-cli 还可能报其他错误,需要更新一下 vue-cli
npm update vue-cli
然后可以查看一下当前全局 vue-cli 的版本

更新完vue-cli的版本后,问题得到解决。

三、通过axios调用api

vue.js框架本身不提供支持外部api的工具,要通过使用Axios才能调用外部api,Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 vue.js 中。
从中提取了几点有用的功能来支持我的项目完成:

  • 安装axios
  • 执行get请求
  • 错误处理

1、安装axios

$ npm install axios

2、执行get请求(post类似)

// 为给定 ID 的 user 创建请求
axios.get('/user?ID=12345').then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});// 可选地,上面的请求可以这样做
axios.get('/user', {params: {ID: 12345}}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});

3、错误处理

axios.get('/user/12345').catch(function (error) {if (error.response) {// 请求已发出,但服务器响应的状态码不在 2xx 范围内console.log(error.response.data);console.log(error.response.status);console.log(error.response.headers);} else {// Something happened in setting up the request that triggered an Errorconsole.log('Error', error.message);}console.log(error.config);});

四、javascript的Date对象

在发布作业的部分,我通过使用Iview的组件DatePicker来选择截止时间,其绑定的数据为js的Date对象格式,而api的参数要求如下
886318-20171118165044015-1501823728.png
我一开始想直接通过Date.toString()来转成字符串再传给api,结果api返回值显示格式错误,一脸懵逼的我在控制台将Date对象转为字符串的结果输出,结果显示
886318-20171118170440671-1287111824.png
本以为一个转字符串函数就能解决的问题,没想到还是要自己手动将Date格式化,于是我在网上找到教程

  • js日期格式化转换

同时结合Date的一些对象方法
886318-20171118165725827-1496818795.png
最终完成了Date对象的格式转换,成功用api上传了发布作业的截止时间数据
(注:Date对象的月份,貌似比正常的少1,因此在处理的时候记得将Date对象中的月份+1)

五、文件上传

印象深刻的一个环节,花费了好多时间

上传文件代码1.0

886318-20171117133922452-505524460.png
使用iview组件库的Upload组件,结果控制台报错信息如下
886318-20171117134129906-1475334467.png
之前碰到过类似的问题,知道应该是传参出错,由于使用的不是原生的form写法,不知道要怎么将参数cid和file一起加入(API的接口要求传参cid,file),就改成了原生form写法

上传文件代码2.0

886318-20171117134423031-140714362.png
这次的报错信息就更诡异了,如下
886318-20171117134505468-322463004.png
找资料发现,文件上传的格式跟普通表单上传不太一样,涉及到编码问题

定义和用法
enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。

默认的enctype格式为application/x-www-form-urlencoded,要使用文件上传,必须将enctype改为multipart/form-data。于是我再次改变写法

上传文件代码3.0

886318-20171117135211999-210807264.png
这次总算获取到了正确的api返回值,截图留念。
886318-20171117135539265-796265034.png

收获:
1、框架提供的组件不熟,能用且用,不能用就用原生的
2、文件上传记得修改form的enctype属性
3、form中,action后的url中传参方式为get,若要用post,则要在Input中另写,并将form的method写为post

六、javascript教程

不要觉得这部分很多余!要用vue.js框架,javascript需要非常扎实的基本功!在整个前端开发的过程中,我大概重新查过了js的文档有35次左右,下面奉上js圣经。
参考资料:

  • MDS web docs
  • eloquentjavascript
    看过了菜鸟教程、w3cschool等很多种教程,还是觉得mdn写得最全面,称之为圣经是一点都不为过,建议看英文版,中文的版本落后英文的好多。

转载于:https://www.cnblogs.com/Mrwho1/p/7845741.html

相关文章:

Scratch等级考试(一级)模拟题

Scratch竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。 这是第…

参加完Python培训后可以找什么工作

Python在近几年的发展速度是非常快的,越来越多的学员开始学习Python技术,都想学成以后找一个好的工作,那么参加完Python培训后可以找什么工作呢?来看看下面的详细介绍吧。 参加完Python培训后可以找什么工作: 网络编程 除了网络和…

大型数据库设计原则与技巧

大型数据库设计原则与技巧 一个好的数据库产品不等于就有一个好的应用系统,如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。一般来讲,在一个MIS系统…

Datawhale组队学习周报(第005周)

本周(03月15日~03月21日),第 23 期组队学习正在如火如荼的进行中。本期组队学习,一共有 4 门开源课程,共组建了 5 个学习群,参与的学习者有 740 人。另外,第 24 期组队学习也蓄势待发准备与大家…

安装hue依赖包

yum -y install rsync gcc gcc-c openldap-devel openssl-devel python-ldap python-devel python-setuptools python-simplejson sqlite-devel libxml2-devel libxslt-devel cyrus-sasl-devel gmp-devel 另外还需要安装mysql mysql-devel 本文转自 yntmdr 51CTO博客&a…

Python培训入门基础知识学什么?

Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编的详细介绍。 Python培训入门基础知识学什么?P…

Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处理

介绍Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处。 Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断或关机后,重新开机,运行数据库及数据库监听,再运行应用服务后,登录会出现如下提示,需…

cmd命令 安装本地服务器

安装本地服务器 0下载nodejs并安装 1安装npm :npm install -g anywhere 2打开服务器 :anywhere 8080 3停用服务器 ctrlc 查找路径 cd c:/program/www/ 本文转自Ansue 51CTO博客,原文链接http://blog.51cto.com/ansue/1732335:&…

你与ACM MM的距离只差一场算法比赛

你与ACM MM的距离只差一场算法比赛 伴随5G时代来临,视频广告迎来爆发式增长,在广告创意/投放/策略等广告系统的关键环节中,对视频广告内容的深度理解越发显得重要且迫切。 因此,2021腾讯广告算法大赛今年的赛题聚焦在了视频广告…

Python培训班适合哪些人报名学习

学习Python技术有两种方法,一个是自学,一个是报Python培训班进行系统学习,自学肯定是对一些有Python基础的同学比较合适的,那么Python培训班适合哪些人报名学习呢?来看看下面的详细介绍。 Python培训班适合哪些人报名学习? 1.适…

网络硬件一篇通

现在局域网大多采用以太网的拓扑结构,物理上由服务器、工作站、集线器、交换机、路由器、网卡、 RJ45水晶头、网线等组成。很多朋友想了解一些局域网的硬件组成及相关硬件的安装设置,下面就谈谈这方面的话题。一、网络硬件概述1、服务器和工作站大多数时…

DevExpress.XtraReports打印

使用DevExpress.XtraReports打印报表时,分别采用两种打印方式。以下面的打印样式为列作简要说明: 第一种:表头表尾保持不变,表中数据根据实际打印条数更改。如现在我要打印的学生为三个,则得到如下的报表: …

【直播】鱼佬:心跳信号分类赛高分突破

心跳信号分类赛高分突破 目前 Datawhale第23期组队学习正在如火如荼的进行中。为了大家更好的学习,零基础入门数据挖掘(心跳信号分类) 的课程设计者王贺,将为大家带来一场直播分享——心跳信号分类赛高分突破。 直播信息 主讲人…

21个UI设计必会的设计技巧

想要成为一名合格的UI设计师,必须要有扎实的基础,和丰富的设计经验,本期小编为大家介绍的UI设计培训教程是21个UI设计必会的设计技巧,可帮助大家提升自己。 UI设计培训技术分享:一个好的UI设计是由无数个小决定组成的&…

SQL Server 2014新特性——基数评估(白皮书阅读笔记)

基数评估 目录 基数评估 说明 基数评估准确的重要性 模型假设 启用新的基数评估 验证基数评估的版本 在迁移到新的基数评估前要测试 校验基数评估 偏差问题 需要手动处理的变化 避免因为新的CE造成性能下降 SQL Server 2014中的修改 增加多个谓词的相关性的假设 修改超出统计信…

【直播】张晋:心跳信号分类模型融合

心跳信号分类模型融合 目前 Datawhale第23期组队学习 正在如火如荼的进行中。为了大家更好的学习,零基础入门数据挖掘(心跳信号分类) 的课程设计者张晋,将为大家带来一场直播分享——心跳信号分类模型融合。 直播信息 主讲人&am…

无密码SSH配置

由于Hadoop和以后用到的Git分布式版本控制都用到了SSH,故这里把无密码登录的SSH的配置过程记录下: 1. 首先切换到想要使用ssh的用户下,不一定是root用户 2. ssh-keygen –t rsa –P ‘’ (这个用来产生id_rsa.pub和id_rsa&#xf…

学Java技术,这些问题要避免

参加java培训学习java技术不是一朝一夕就能学会的事情,在学习的过程中还要注意学习方式,有一些错误是要避免的,下面我们就为大家详细的介绍一下学java技术要避免哪些问题? Java培训分享:学Java技术,这些问题要避免 1.…

Activity悬浮并可拖动(访悬浮歌词)

强烈推荐: 最无私的Android资料(书籍代码)分享-不要积分(求置顶)http://www.eoeandroid.com/thread-80891-1-1.html 大量项目源码分享http://www.eoeandroid.com/thread-162339-1-1.html 基于Android系统的影音播放器开…

实现单向访问控制

[Router]acl 3000 match-order auto //配置acl 3000[Router-acl3000]rule 1 deny icmp source 192.168.10.30 0.0.0.0 destination 192.168.10.20 0.0.0.0 icmp-type echo // 禁止主机PC2 ping主机PC1。[Router-acl3000]rule 2 deny tcp source 192.168.10.30 0.0.0.0 destin…

【直播】鱼佬:数据挖掘师之路(河北高校数据挖掘邀请赛)

数据挖掘师之路 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中。为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备、数据读取、数据分析、特征工程到数据建模的整个过程。03月28日晚,王贺也为…

Python培训班线上线下哪种靠谱

Python近几年在人工智能领域的快速发展,引起了很多人的注意,各种Python培训机构也越来越多,很多零基础的同学都想通过报培训班学习,目前互联网的发达,Python培训分为线上和线下,那么Python培训班线上线下哪…

3-openstack之keystone上

3.1 keystone 安装linux-node1上面 3.2 配置源 12http://mirrors.aliyun.com/centos/7.2.1511/cloud/x86_64/openstack-newton/centos-release-openstack-newton-1-1.el7.noarch.rpm yumlocalinstall -y centos-release-openstack-newton-1-1.el7.noarch.rpm安装:…

全面认识一下.NET 4.0的缓存功能

很多关于.NET 4.0新特性的介绍,缓存功能的增强肯定是不会被忽略的一个重要亮点。在很多文档中都会介绍到在.NET 4.0中,缓存功能的增强主要是在扩展性方面做了改进,改变了原来只能利用内存进行缓存的局限,允许用户在不改变代码的情…

【直播】王茂霖:二手车交易价格预测 Baseline 提高(河北高校数据挖掘邀请赛)

二手车交易价格预测 Baseline 提高 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中。为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备、数据读取、数据分析、特征工程到数据建模的整个过程。04月01日晚&a…

java培训要学习多久?

java技术要学习的内容有很多,那么究竟java培训要学习多久?这是很多同学都比较关注的一个问题,首先我们来详细的了解一下java培训的学习路线都有哪些,具体要花多少时间学习吧。  ​ java培训要学习多久? 1.Java语言介绍 从基础语法、面向对…

数据库范式温习

简介 关系数据库中的关系必须满足一定的要求,即满足不同的范式。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、…

使用 git 管理 portage tree

安装 git.备份原来的 portage tree.克隆 funtoo.cd /usr && rm -rf portage && git clone git://github.com/funtoo/portage.git 仓库中有gentoo.org, funtoo.org, master三个分支. 分支 gentoo.org 就是 gentoo 的官方 portage tree, 只不过是由 Daniel Robb…

02 Scratch等级考试(二级)模拟题

青少年编程竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档&…

怎样找到适合自己的UI设计培训班

UI设计这个行业近几年有越来越多的人都比较关注,市面上的UI设计培训机构也越来越多,很多零基础同学都在寻找适合自己的UI设计培训机构,那么怎样找到适合自己的UI设计培训班呢?来 怎样找到适合自己的UI设计培训班? 一、看课程内容 UI设计行业…