2020/7/25 async/await node基础
await等待promise返回的状态是resolve 然后继续执行下去,后面跟promise,generator,另外一个async函数等
后面是普通表达式就正常执行 包括定时器
async/await 基本用法:
上面为啥data就是$.ajax()返回的 数据呢,因为$.ajax()里面的success:function(res){} 能本.then(res=>{})成功回调取代 value 就是res,而这个data 就是拿到了value 所以data 就是resolve里面的value
async/await本身没有失败回调来报错,用try-catch
package.json 里面的配置文件的作用 根据配置文件,来用npm i 来恢复配置(i是install简写)
数据交互几种方式:
1,表单 最基础的最简单的交互,整个页面都刷新
2,ajax 最常见的靠谱的,局部页面,可以跨域
3,jsonP 用来跨域,逐渐被取代 安全性太差
4,WebSocket 除了这个上面三种交互到服务器都是表单,只是写法不一样
比ajax性能高,ajax是单向 WebSocket是双工通信,ajax天生不能
跨域,要通过别的方法来实现,WebSocket天生能直接跨域
对跨域来说ajax比较麻烦,但是比较安全,jsonp简单但是有风险
1,http协议:https安全的加密的 http容易被安全
请求头<=32k 请求体<=1G
网络七层协议简记:物链网传会表应
TCP:传输控制协议 :1,丢失重传,错误重传,保证顺序 (WebSocket用tcp)
UDP:用户数据报协议:1,不保证到达,质量,顺序 适合对延时要求高,质量要求 不高
表单:
1,属性
action 提交到哪里
method: POST GET DELETE HWADER
name: 必须有
submit :必须有提交
2,提交方式
GET:数据在地址栏,有缓冲,容量小,不安全,容易转发和收藏,复制地址栏就能转发(如将看中衣服发给别人,带数据过去)
POST:在http请求体里面,没缓冲,容量大,看不见
缓存原理:
缓存不是每次访问都不会请求浏览器,第一个访问成功的时候会得到数据,第二次再访问到时候,会带个版本时间过去,看看服务器数据有没有更新,更新了重新接收新的数据,没更新就返回304状态码,用缓存就行了
301 永久性重定向 302暂时重定向
node.js
Node.js与后台语言的不同点:
优点:
1,node.js的对象,语法与javascript一模一样
2,性能还行比php好‘
3,前后台配合方便
缺点:
1,Java及其丰富库支持,node不够丰富
node作用:
1,服务器 作为小型的后台系统,中间层
node.js搭建web服务器 遵循http服务器
引入http模块 const http=require(‘http’);
let server=http.createServer(()=>{}) 当被请求的时候就会调用这个
服务器对象的监听方法 listen(端口号)
一台服务器多个端口 根据客户端访问不同的端口来做不同的处理
req:请求的参数 有属性method url 表示请求的地址和方法
res.write() 对前台的响应
Node 断言
引入模块 const assert=require(‘assert’);
加入断言是个好习惯,用来检测参数,等是否合法, 一旦不满足条件就中断函数
assert.equal(实际值,期望值,[错误信息]) 只能判断基本数据类型,引用类型不行,无法判断 是等价于== 不满足就抛出定义的错误信息
assert.strictEqual(实际值,期望值,[错误信息]) 等价于 ===
不满足就抛出定义的错误信息
node fs模块
const fs=require(‘fs’);
fs.readFile() 异步操作 读取的是二进制数据加toString()转文本
fs.writeFile 异步操作
writeFile() 是覆盖文件 appendFile()是追加