附注实为对个人自学看法,无法保证精确性,千万别郭云,如有瑕疵严重错误,望尖萼。
有鉴于生前英文翻译水准,为保证自学撷取方便快捷精确,下列牵涉 Node.js 官方网站的数据资料均指 Node.js 中国日报
的文本。
简介
官方网站定义
Node.js 是如前所述 Chrome V8 发动机的 JavaScript 运转自然环境。
V8发动机:采用 C++ 撰写的C++,能将 JavaScript 程式结构设计成高效率的原生植物JAVA词汇对个人认知
JavaScript 结构设计Hathras,是两门运转在应用领域程序上的JAVA类词汇,它的运转自然环境即是 web 应用领域程序。 而后,随著 JavaScript 自然生态的经济繁荣和派生,他们不满足用户于 web 端合作开发,想冲破壁垒,只好有了 Node.js。它使 JavaScript 技师能借助于 C、C++ 的潜能合作开发后端、PDP、图形界面端等应用领域的合作开发。
Node.js 构架Saramon
Node.js API / Application
他们平常采用 Node.js 主要就文本的是互联网层标识符撰写和 Node.js API 的初始化。
Bindings
Node.js 透过 Bindings 层将 C++、C 写的下层组件,以USB的方式曝露到 JavaScript 自然环境中采用。
Addons
近似于 Bindings 层的促进作用,用作tandem服务器端或是他们写的 C++、C 库,这儿的肥皂标识符需另行合作开发。
下层倚赖库
V8: 将 JavaScript 程式结构设计成高效率的原生植物机器词汇libuv: C 词汇合作开发的外部缓存池管理工作组件,提供更多 Event Loop、互联网I/O、文档I/O 等潜能。特征
Node.js 采用了一个事件驱动、非阻塞 I/O的模型
应用领域场景
web 服务器(BFF层)构建工具(webpack …)合作开发框架 / 合作开发工具( Electron -> vscode);游戏 (wayward)EventLoop
由于 JavaScript 是一个具有单缓存特性的词汇,为了提升 Node.js 的吞吐量等原因,Node.js 采用了 EventLoop 处理主缓存 + worker pool 中的多个辅助缓存的模式。
EventLoop 即事件循环,它是一种机制
当遇到阻塞操作,如 I/O 操作时,EventLoop 将当前任务交由工作池(worker pool)产生的单独缓存处理,并从
等独立缓存有结果后会通知 EventLoop, EventLoop 将结果填充到回调函数中,并执行回调函数。
常用约定规范
回调函数格式规范
error-frist callback / Node-style callback首个参数为 error 参数,无严重错误则值为 null