node是什么
- Node.js是一个基于 ChromeV8引擎的JavaScript运行环境(runtime)
- Node不是一门语言是让js运行在后端的运行时,并且不包括javascript全集,因为在服务端中不包含DOM和BOM,Node也提供了一些新的模块例如http,fs模块等。
- Node.js 使用了事件驱动、非阻塞式 I/O 的模型,使其轻量又高效并且Node.js 的包管理器 npm,是全球最大的开源库生态系统。
Node的优点
Node在处理高并发,I/O密集场景有明显的性能优势
- 高并发,是指在同一时间并发访问服务器
- I/O密集指的是文件操作、网络操作、数据库,相对的有CPU密集,CPU密集指的是逻辑处理运算、压缩、解压、加密、解密
Web主要场景就是接收客户端的请求读取静态资源和渲染界面,所以Node非常适合Web应用的开发。
node是单线程
- 单线程特点是节约了内存,并且不需要在切换执行上下文
- 而且单线程不需要管锁的问题
同步阻塞和异步非阻塞
- 发送方发送请求之后一直等待响应。接收方处理请求时进行的IO操作如果不能马上等到返回结果,就一直等到返回结果后,才响应发送方,期间发送方不能进行其他工作。
- 发送方向接收方请求后,不等待响应,可以继续其他工作。接收方处理请求时进行IO操作如果不能马上得到结果,也不等待,而是马上返回去做其他事情。当IO操作完成以后,将完成状态和结果通知接收方,接收方再响应发送方。(效率最高)
Node中的Event Loop

Node中全局对象
- Buffer
- process
- ...
node中的模块
- exports
- module
- require()
- ...
接下来是node中的eventloop哦!