1. 浏览器输入网址发送请求, 发生如下过程
image
客户端发送请求, http://www.baidu.com/www.taobao.com
到达服务器, 服务器验证合法通过
根据请求需要, 读取数据库
数据库经过统一封装, 返回客户端
客户端接受数据, 展示页面
2.V8 引擎虚拟机解决性能
eg: 谷歌因为是 V8 可以运行 JS,
特点: 稳定高效
流程虚拟机, 万能 JS 由来
放在服务器端, 服务器端可以运行 JS------nnode.JS
3.node.JS
开始只能运行在客户端 ---》演变运行在服务端 ----》最后形成一个平台
只是平台 (包装之后的 v8 引擎) 不是语言, 本身用的 JS 语言
1. 单线程
减少内存开销
2. 非阻塞 I/o
不会一直等, 都会放在回调里
3. 事件驱动
image
4. 客户端与服务器
CS----pc 客户端与服务端架构
BS---- 浏览器与服务端架构
url 地址
image
image
5.http 协议
请求
响应
6.exports 与 module.exports
本质的话是
- let exports = module.exports
- exports.name // 会改变 module.exports
- exports = {
- name:
- } // 会改变 module.exports,{
- }改变创建了新的地址, 改变指针指向
exports 暴露的是方法属性 exports.age="19",. 语法相当于没有创建新对象, 指针指向没改变, 如果 ={}的话, 是创建了新的内存地址
同时 exports 也不支持输出类
module.exports 暴露的是对象{}
module.exports 包含 exports
7.node.JS-----Buffer(缓冲区)
容器 -- 装二进制数据 - 类似于数组, 怎么操作数组就可以怎么操作 buffer
Buffer.form(string[, encoding]) string 编码字符串, encoding 编码类型
文件系统 fs 读入写出, 读入流写出流 === 掌握
8. 数据库
对数据的管理,
分为关系型数据库(上)----- 结构化, 操作不灵活 MySQL
非关系型数据库(下) ------- 灵活, 不适合大型数据的操作, 适合微架构 MongoDB
image
来源: http://www.jianshu.com/p/97c372023cb6