一、Node简介
node.js是一个基于谷歌V8引擎的 javascript运行环境!换句话来说,无V8的扶持就不会有NODE 。
在浏览器的V8 比如 没有HTTP 模块 没有能启动 服务器的 端口号的的模块 没有能读写文件的模块 。
此时的NODE 完全版 除了V8 之外 因为V8不带网络 启动模块 所以加了很多C++里面的网络模块内容 还有C++的文件操作模块
核心组成 javascript Node Standart Library JS node的标准库 (包括怎么样启动服务器API语法,怎么样接收前端发的http请求node语法等…)
C/C++ 层的
1 node Bindgs nodejs还绑定了了socket(通信方式协议),http(网络协议 可以启动服务器), file system(文件管理系统),etc(编译环境 )
补充 浏览器代码无法删除文件 无法启动服务器 就是因为缺少node绑定的核心模块,原因是浏览器如果可以删除用户文件,写个循环可以清空用户电脑这是极度不安全并且无法接收的!node的权限是比浏览器的js权限要高很多的!
2 V8作为转译层 js ->C C++ -> 汇编
3 libuv ,libuv 网络库,都是c语言实现的异步事件库,以及文件系统以及事件循环(event loop)
总结 瑞恩达尔作为一个程序员的整合者,有人说瑞恩达尔是站在巨人的肩膀上,比如V8引擎不开源,加入C++类库不开源,瑞恩达尔很难发明出NODE,但是瑞恩达尔整合的聪明才智,才把前端推进了一大步。使JS成为一门真正的全栈语言 。
二、nodejs的特点
1 天生单线程支持高并发
2 非阻塞IO模型 高并发性能数一数二(异步) 遇到墨迹的挂起不管 举手之后在去给你处理 就是回调
3 轻量和高效
4 前后端不用换语言可以开发全栈应用
web交互: