Node.js初学者必备知识

发表时间: 2019-05-14 19:41

深拷贝与浅拷贝

浅拷贝-复制一层

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))

二进制-buffer

服务器一般是异步操作

fs.writeFile 读取文件

多进程

Child Processes

Cluster

Process

加密

Crypto 签名

md5 sha

Path

来处理路径

安全性

1.一切来自前台的数据都是不可信的

数据库

1.文件型数据库-sqlite 简单,小

2.关系型数据库-mysql,oracle最常见,最常用

数据之间是有关系的

3.文档型数据库-MongoDB

直接存储异构数据

Mysql与Oracle区别

Mysql 80%免费 绝大多数应用

性能高,安全性很高

容灾略差

Oracle 要钱 金融医疗

容灾特别强

Nosql 没有复杂的关系,对性能有极高的要求

数据仓库

海量的数据

node的垃圾回收,javascript的垃圾回收

只要某个东西不再使用了,释放掉所占据的内存

内存泄漏

p=Null

服务器的缓冲池

1.最近使用的,最常用的资源(文件,数据)直接留在内存里

策略--》缓冲命中率

原生node.js:

1.服务器基本结构:解析数据(get,post),响应静态资源(fs)

2.file数据

3.数据库

表单的三种post:

1.text/plain 用的很少,纯文字


2.application/x-www-form-urlencoded 默认 url编码方式

3.multipart/form-data 上传文件内容

\r\n

换行符

解析数据

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.分析“数据描述”

对Buffer数据进行处理:

1.查找 indexof()

2.截取 slice(s,e)[s,...,e-1]

3.切分 split

=-1 确保已经走到头