网络协议学习-邂逅
基本概念客户端服务器
安装Tomcat https://www.jianshu.com/p/69496fb3495e
http://IP地址:端口号/资源路径
协议网络互连模型
为了更好促进互联网络的研究发展,国际标准化组织ISO在1985年制定了网络互连模型
OSI参考模型 具有七层结构
应用层
表示层
会话层
运输层
网络层
数据链路层
物理层
TCP/IP协议模型
4.应用层
3.运输层
2.网际层
1.网络接口层
学习研究
5.应用层
4.运输层
3.网络层
2.数据链路层
1.物理层
计算机之间的通信基础
需要得知对方的Ip地址
最终根据MAC地址(网卡地址) 输送数据到网卡,被网卡接收
如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理
如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层进行处理
计算机之间的连接方式网线直连需要用交叉线(不是直通线)
先走ARP (广播) 协议:先问MAC地址
FFFF.FFFF.F ...
Webpack学习-Webpack的核心配置选项
webpack默认打包我们可以通过webpack进行打包,之后运行打包之后的代码
在目录下直接执行webpack命令 使用的是全局的webpack
之后生成一个dist文件夹,里面存放一个main.js的文件,就是我们打包之后的文件
这个文件中的代码被压缩和丑化了;
webpack是如何确定我们的入口?
我们运行webpack时,webpack会查找当前目录下的 src/index.js作为入口;
所以,如果当前项目中没有存在src/index.js文件,那么会报错;
通过配置指定入口和出口 npx webpack --entry ./src/main.js --output-path ./build
Webpack配置文件
在通常情况下,webpack需要打包的项目是非常复杂的,并且我们需要一系列的配置来满足要求,默认配置必然是不可以的。
我们可以在根目录下创建一个webpack.config.js文件,来作为webpack的配置文件:
继续执行webpack 命令 仍然可以正常打包
指定配置文件
如果配置文件不是webpack.config.js那么需 ...
Webpack学习一经典邂逅
邂逅Webpack前端的发展
互联网发展早期,前端只负责写静态页面,纯粹的展示功能,JavaScript的作用也只是进行一些表单的验证和增加特效。
当然为了动态在页面中填充一些数据,也出现了JSP、ASP、PHP这样的开发模式。
随着AJAX技术的诞生改变了前端的发展历史,使得开发者发现,前端的作用不仅仅是展示页面,可以管理数据以及和用户互动。由于用户交互、数据交互的需求增多,也让jQuery 这样优秀的前端工具库大放异彩。
而现代的Web开发事实上变得更加多样化和复杂化。开发的多样性包括我们需要开发PC Web页面、移动端Web页面、小程序、公众号、甚至包括App,都属于前端开发的范畴。当然也包括一系列复杂性的问题。
前端开发的复杂化
模块化开发
使用一些高级的特性来加快我们的开发效率或者安全性,比如通过ES6+、TypeScript开发脚本逻辑,通过sass、less等方式来编写css样式代码;
实时监听文件的变化来并且反映到浏览器上,提高开发的效率;
将代码进行压缩、合并以及其他相关的优化;
三大框架的脚手架
Vue
Vue-cli
React
Angular
...
实习学习记录
Recording __Learn gsc-font-vue
querystring(查询字符串)
提供用于解析和格式化 URL 查询字符串的实用工具
eventHub
eventHub可以用来让全局组件之间进行通信 在入口文件main.js中
Vue.prototype.$eventHub = Vue.prototype.$eventHub || new Vue()
eventBusVue-ls一个Vue插件,用于从Vue上下文中使用本地Storage,会话Storage和内存Storage
__一个vue封装的本地储存的方法。
全局使用: Vue.ls
上下文使用: this.$ls
常用API:
Vue.ls.get(name,def) 返回storage中 name值。在返回之前,内部解析JSON中的值
def参数 默认为null 如果没有设置name 则返回该默认值def
Vue.ls.set(name,value,expire)
在storage设置name的value 并将value 转化为JSON
expire 默认为null n ...
Node学习-Coderhub项目
Node学习 项目接口开发项目接口架构完整的项目接口包括:
面向用户的业务接口;
面向企业或者内部的后台管理接口;
项目搭建
功能一:目录结构的划分:
按照功能模块划分;
按照业务模块划分;
功能二:应用配置信息写到环境变量
编写.env文件
通过dotenv加载配置的变量
功能三:创建和启动服务器
基于koa创建app;
启动服务器;
注册接口配置postman
建立coderhub文件目录
配置环境变量 coder_dev coder_test 使用baseURL即可在不同环境下对接口进行调试
通过用户接口打通目录结构 划分为三个层级
引入koa-router router目录下的user.router.js专门 是负责user这一路由
在user.controller.js 专门负责处理router 的逻辑
user.service.js负责处理数据库插入查询等
数据写入数据库
数据库创建user 表
链接数据库
使用mysql2 链接
需要对用户输入的用户名密码进行判断 使用verifyUser中间件进行判断
封装错误处理函数
...
Node学习-Node中使用Mysql
Node中使用Mysqlmysql2在Node的代码中执行SQL语句借助于mysql2
更快/更好的性能;
Prepared Statement(预编译语句):
提高性能:将创建的语句模块发送给MySQL,然后MySQL编译(解析、优化、转换)语句模块,并且存储它但是不执行,之后我们在真正执行时会给?提供实际的参数才会执行;就算多次执行,也只会编译一次,所以性能是更高的;
防止SQL注入:之后传入的值不会像模块引擎那样就编译,那么一些SQL注入的内容不会被执行;or 1 = 1不会被执行;
基本使用
1.创建数据库连接
12345678const connection =mysql2.createConnection({ host:'localhost', port: 3306, database: 'coderhub', user: 'root', password: 'coderhyp888.'});
2.执行sql语句
123456co ...
数据库学习-MySQL
MySQL___软件系统需要存放大量的数据 这些数据通常是非常复杂和庞大的
文件系统的缺点:
很难以合适的方式组织数据
很难进行数据共享 比如一个数据库需要为多个程序服务
对数据进行增删改查中的复杂操作 保证单操作的原子性
常见数据库
关系型数据库: MySQL、Oracle、DB2、SQL Server、Postgre SQL等
关系型数据库通常我们会创建很多个二维数据表;
数据表之间相互关联起来,形成一对一、一对多、多对对等关系;
之后可以利用SQL语句在多张表中查询我们所需的数据;
支持事务,对数据的访问更加的安全;
非关系型数据库:MongoDB、Redis、Memcached、HBse等;
非关系型数据库的英文其实是Not only SQL,也简称为NoSQL;
非关系型数据库比较简单一些,存储数据也会更加自由(甚至我们可以直接将一个复杂的json对象直接塞入到数据库中)
NoSQL是基于Key-Value的对应关系,并且查询的过程中不需要经过SQL解析,所以性能更高;
NoSQL通常不支持事务,需要在自己的程序中来保证一些原子性的操作;
比较常用的用到非关系型数 ...
Node-数据库学习-MySQL
MySQL___软件系统需要存放大量的数据 这些数据通常是非常复杂和庞大的
文件系统的缺点:
很难以合适的方式组织数据
很难进行数据共享 比如一个数据库需要为多个程序服务
对数据进行增删改查中的复杂操作 保证单操作的原子性
常见数据库
关系型数据库: MySQL、Oracle、DB2、SQL Server、Postgre SQL等
关系型数据库通常我们会创建很多个二维数据表;
数据表之间相互关联起来,形成一对一、一对多、多对对等关系;
之后可以利用SQL语句在多张表中查询我们所需的数据;
支持事务,对数据的访问更加的安全;
非关系型数据库:MongoDB、Redis、Memcached、HBse等;
非关系型数据库的英文其实是Not only SQL,也简称为NoSQL;
非关系型数据库比较简单一些,存储数据也会更加自由(甚至我们可以直接将一个复杂的json对象直接塞入到数据库中)
NoSQL是基于Key-Value的对应关系,并且查询的过程中不需要经过SQL解析,所以性能更高;
NoSQL通常不支持事务,需要在自己的程序中来保证一些原子性的操作;
比较常用的用到非关系型数 ...
Node学习-Koa框架
KoaKoa初体验___node.js的下一代web框架
koa注册的中间件提供了两个参数:
ctx:上下文(Context)对象;
koa并没有像express一样,将req和res分开,而是将它们作为ctx的属性;
ctx代表依次请求的上下文对象;
ctx.request:获取请求对象;
ctx.response:获取响应对象;
next:本质上是一个dispatch,类似于之前的next;
1234567891011const Koa = require('koa');const app = new Koa()app.use((ctx,next)=>{ ctx.response.body="Hello"})app.listen(8000,()=>{ console.log("服务器启动成功");})
Koa中间件
koa通过创建的app对象,注册中间件只能通过use方法:
Koa并没有提供methods的方式来注册中间件;
也没有提供pa ...
Node学习-express框架使用
Web框架 - Express因为使用原生内置的http模块搭建服务器在进行很多处理的时候会很复杂 所以使用框架
比较流行的框架是 express 和 koa
Express整个框架的核心就是中间件,理解了中间件其他一切都非常简单!
Express的安装和体验
安装脚手架npm install -g express-generator
创建项目express express-demo
安装依赖npm install
启动项目node bin/www
或者用npm init -y的方式来从0搭建自己的express应用架构
体验
1234567891011121314151617181920const express = require('express');//express实际上是一个函数 createApplication//返回一个函数 appconst app = express()//监听默认路径app.get('/',(req,res,next)=>{ res.end('hello expres ...