当前位置: 首页 > 后端技术 > Node.js

《Node 实战(第2版)》读书笔记(1.初识Node)

时间:2023-04-03 19:23:20 Node.js

什么是Node?Node.js是一个JavaScript运行时平台,其显着特点是异步和事件驱动机制,以及小巧玲珑的标准库。Node的Node特性介绍Node和JavaScript的优势之一是它们的单线程模型。这样一来,代码控制逻辑就非常清晰明了。但是Node使用事件轮询、异步API、非阻塞I/O三种技术来解决单线程阻塞(等待问题)。Node和V8Node由V8JavaScript引擎提供支持,该引擎由服务于GoogleChrome的Chromium项目团队开发。V8的一个值得称赞的特性是它会被JavaScript直接编译成机器码,而且它还有一些代码优化特性,所以Node才能这么快。Node的另一个原生组件libuv负责处理I/O。V8负责JavaScript代码的解释和执行。C++绑定层可用于组合libuv和V8。如图:V8会为Node.js提供一些额外的特性支持。可以通过以下代码查看Node特性支持(linux、macOS):node--v8-options|grep"inprogress"安装Node很简单,去官网或者使用一些包管理工具就可以快速安装Node程序。目前支持大部分操作系统,也可以通过源码安装。Node自带的工具Node自带一个包管理工具(npm),它也是一个命令行工具,可用于安装应用程序依赖项或发布您自己的工具包。它还提供了一些核心模块,如:文件系统、网络、Debuggers等,赋予JavaScript读写磁盘、访问Http、命令行单步调试程序的能力。目前,主流的Node程序有三类Web应用。因为Node是一个服务器端的JavaScript平台,所以Web应用程序是最常见的。命令行工具和后台程序桌面程序(Electron)Node编程基础Node通过require(*)引入模块,通过exports和module.exports导出模块。根据需要通过exports或module.exports将功能组织成模块,可以避免程序脚本不断增长带来的弊端。Node可以通过node_modules重用模块。搜索规则如下:使用异步编程技术因为Node是单线程的,所以在开发编程中会遇到很多异步编程技术。Node中流行的响应逻辑管理方式有两种:回调,事件监听(eg:EventEmitter)。其中callback(回调)使用频率最高(所以很多祖传代码以各种方式嵌套。好在Node开发中已经开发了大量优秀的工具来优化异步回调。ES2015的一些新特性也支持同步异步逻辑。程序化展示,用于避免大量祖传回调嵌套问题(eg:generator,aysnc,Promise等)。在异步开发中,经常会出现执行顺序导致逻辑或者代码执行失败的情况符合预期。可以通过一些技术手段去除Avoidance(原因是js中没有块级作用域。现有的let和const变量声明关键字必须通过编程方式避免这个问题,通过将变量提升到临时死区).异步逻辑序列主要有两个方面:串行和并行两种方式,目前Node社区有比较好的流程控制工具,比如:Async、Step、Seq等。