浅拷贝-复制一层
let arr1=[1,2,3]
let arr2=arr1.concat([])
深拷贝-复制所有的东西
let arr1=[{a:12,b:5},2,3]
let arr2=JSON.parse(JSON.stringify(arr1));
arr2[0].a++;
const assert=require('assert');
function sum(a,b){
assert(arguments.length==2,'必须传两个参数')
assert(typeof a=='number','第一个参数必须是数字')
return a+b;
}
console.log(sum(12,5))
服务器一般是异步操作
fs.writeFile 读取文件
Child Processes
Cluster
Process
Crypto 签名
md5 sha
来处理路径
1.一切来自前台的数据都是不可信的
1.文件型数据库-sqlite 简单,小
2.关系型数据库-mysql,oracle最常见,最常用
数据之间是有关系的
3.文档型数据库-MongoDB
直接存储异构数据
Mysql 80%免费 绝大多数应用
性能高,安全性很高
容灾略差
Oracle 要钱 金融医疗
容灾特别强
Nosql 没有复杂的关系,对性能有极高的要求
海量的数据
只要某个东西不再使用了,释放掉所占据的内存
p=Null
1.最近使用的,最常用的资源(文件,数据)直接留在内存里
策略--》缓冲命中率
1.服务器基本结构:解析数据(get,post),响应静态资源(fs)
2.file数据
3.数据库
1.text/plain 用的很少,纯文字
2.application/x-www-form-urlencoded 默认 url编码方式
3.multipart/form-data 上传文件内容
换行符
1.用“<分隔符>”切开数据
[空,
\r\n数据描述\r\n\r\n\r\n数据值,
]
2.丢弃头尾元素
[
\r\n数据描述\r\n\r\n数据值\r\n
]
3.丢弃每一项的头尾\r\n
[
数据描述\r\n\r\n数据值
]
4.用第一次出现的“\r\n\r\n”切分
普通数据:[数据描述,数据值]
文件数据:[数据描述\r\n数据描述,<文件内容>]
5.判断描述的里面有没有“\r\n”
有——文件数据:[数据描述1\r\n数据描述2,文件内容]
没有-普通数据:[数据描述,数据值]
6.分析“数据描述”
1.查找 indexof()
2.截取 slice(s,e)[s,...,e-1]
3.切分 split
=-1 确保已经走到头