Node.js简介

505 阅读1分钟

版本

双数是稳定版,单数是非稳定版,建议使用8以上的版本

node.js是什么

它是一个平台它将多种技术组合起来
让javascript也能调用系统接口、开发后端应用
node.js用到了V8引擎、libuv(跨平台的异步I/O能力)、c++实现的c-ares(DNS解析)、http-parser(解析http)、openSSL、zlib(加密)等库 node js架构

node.s技术架构

  1. API(http/fs/等模块) 查看API
  2. node.js bindings(让js和C++通信)
  3. libuv 可以用于TCP/UDP/DNS/文件等的异步操作
  4. V8 将JS源代码变成本地代码并执行/维护调用栈,确保js函数的执行顺序/内存管理/垃圾回收/实现js的标准库,v8不提供DOM API,V8执行JS是单线程的,可以开启两个线程分别执行JS,v8本身是包含多线程的,如垃圾回收为单线程,自带event loop但node.js 基于libuv自己做了一个

evnet loop

什么是event loop

操作系统可以触发事件,JS可以处理事件。
Event Loop就是对事件处理顺序的管理
计时器到期了,文件可以读取了,读取出错了,socket有内容了,关闭了

什么是loop

loop就是循环,比如whill(true)循环
由于事件是分优先级的,所以处理起来也是分先后的
所以node.js需要按顺序轮询每种事件
这种轮询往往都是循环的,1>2>3>1>2>3
event 顺序