学习笔记来源于 哔哩哔哩小满zs的nodejs课程 && 网上搜索的一些资料 小满zs: OS_哔哩哔哩_bilibili 1. 介绍 Node.js的os模块提供了与操作系统进行交互的功能。...它包含了许多方法和属性,可以用来获取和操作与操作系统相关的信息。 一些常用的os模块方法和属性包括: os.platform():返回当前操作系统的平台。...通过os模块,你可以访问这些信息并在你的应用程序中使用它们。你可以根据需要使用这些方法和属性来执行各种操作,例如获取系统信息、处理文件路径、执行系统命令等。 2....// 10.0.22621 2.4 version() 获取电脑版本 console.log(os.version()); //Windows 10 Home China 2.5 使用场景 open方法的实现...open方法的实现,主要根据不同的操作系统去调用相对应的shell命令 echo:Shell echo命令 | 菜鸟教程 (runoob.com) 这里的echo 主要用来读取变量
前言path 模块是 nodejs 中用于处理文件/目录路径的一个内置模块,可以看作是一个工具箱,提供诸多方法供我们使用,当然都是和路径处理有关的。...同时在前端开发中 path 模块出现的频率也是比较高的,比如配置 webpack 的时候等。本文是对该模块中一些常用的方法进行介绍,走,一起学习下吧。...需要注意下,nodejs 中所有的模块(内置,自定义)都需要使用 requier 进行导入,一般导入位置在文件顶部。...dirname,filename__dirname:可以看作是 nodejs 中的全局变量,它始终表示当前执行文件所在目录的完整目录名(绝对路径)__filename:可以看作是 nodejs 中的全局变量...结语关于nodejs path 模块,我们今天就说到这里了,虽然 api 不是很多,但是 path 模块在前端的使用频率还是非常高的,所以觉得很值得学习了解一下的。
async模块是为了解决嵌套金字塔,和异步流程控制而生,常用方法有series、parallel、waterfall、parallelLimit、auto、whilst、doWhilst、forever...和compose,下面分别对这几种方式进行介绍 series 多个函数从上到下依次执行,相互之间没有数据交互,调用方法为series(task,[callback]) var task1 = function...依次执行,前一个函数的输出为后一个函数的输入,这是使用最多的一个方法,解决多个异步嵌套很是方便。...parallelLimit 这个方法和parallel类似,只是limit参数限制了同时并发执行的个数,不再是无限并发,调用方法为:parallelLimit(tasks,limit,[callback...auto 多个函数有数据交互,有的并行,有的依次执行,调用方法:auto(tasks,[callback]) console.time("auto方法"); async.auto({ task1: function
这次研究下 nodejs 的 crypto 模块,它提供了各种各样加密算法的 API。这篇文章记录了常用加密算法的种类、特点、用途和代码实现。其中涉及算法较多,应用面较广,每类算法都有自己适用的场景。...(); Nodejs 提供了 Cipher 类和 Decipher 类,分别用于加密和解密。...两者都继承 Transfrom Stream,API 的使用方法和哈希函数的 API 使用方法类似。...除此之外,crypto 模块还提供了其他算法工具,例如 ECDH 在区块链中有应用。这篇文章没有再记录,感兴趣的同学可以去查阅相关资料。...参考链接 NodeJS docs: crypto 推荐:Node.js 加密算法库 Crypto 推荐:什么是 hash?
nodejs 提供了 DNS 查询和操作的 API,本篇的目录是: 什么是 DNS 解析? dns.resolve*() vs dns.lookup() 什么是反向域名解析?...dns.resolve*() vs dns.lookup() 在 dns 模块中,提供了两类解析的 API:resolve*() 和 loopup()。...dns 模块提供了reverse()函数来实现反向域名解析: dns.reverse("220.181.38.148", (err, hostnames) => { if (err) throw...} = require("dns"); const resolver = new Resolver(); resolver.setServers(["4.4.4.4"]); 参考链接 Nodejs DNS...Doc Node.js:DNS 模块的使用
nodejs 的 zlib 模块提供了资源压缩功能。例如在 http 传输过程中常用的 gzip,能大幅度减少网络传输流量,提高速度。...本文将从下面几个方面介绍 zlib 模块和相关知识点: 文件压缩 / 解压 HTTP 中的压缩/解压 压缩算法:RLE 压缩算法:哈夫曼树 文件的压缩/解压 以 gzip 压缩为例,压缩代码如下:...zlib.createBrotliDecompress()).pipe(output); break; // 或者, 只是使用 zlib.createUnzip() 方法去处理这两种情况...参考链接 Nodejs 文档 30 分钟 HTTP 查漏补缺之 Vary 程序员不得不了解的硬核知识大全
读了 events 模块的文档,研究了几个有意思的问题: ?️ 事件驱动模型 ?️ 优雅的错误处理 ?️ 监听器器队列顺序处理 ?️ 内存管理与防止泄漏 ?...配合 Promise 使用 引用/转载 请声明出处:原文链接: xxoo521.com 事件驱动模型 Nodejs 使用了一个事件驱动、非阻塞 IO 的模型。...events模块是事件驱动的核心模块。很多内置模块都继承了events.EventEmitter。 自己无需手动实现这种设计模式,直接继承EventEmitter即可。...在原型链上封装了 insertListener 方法。
Nodejs 提供了 cluster 来支持服务集群的扩展,提高多核 CPU 的利用效率,实现负载均衡,最大程度利用机器性能。...更多进程控制方法:心跳保活、自动重启、负载检测 除了前面所讲的方法,进程控制的常见方法还有:心跳保活、自动重启、负载检测。...关于检测方法可以看这篇文章《NodeJS 模块研究 - os》。...这些方法在 vemojs 中都有应用,具体可以看这篇文章:《VemoJS 源码拆解》 参考链接 Nodejs 文档 NodeJS 模块研究 - os VemoJS 源码拆解 autocannon 解读...NodeJS 的 Cluster 模块 Node.js 集群(cluster):扩展你的 Node.js 应用
直接上图 node require(X).jpg 参考文献:require() 源码解读
nodejs 提供了 stream 模块,来让开发者更优雅地处理数据。这需要开发者理解“流”的含义,遵循“流”的相关规范,来进行“流”编程。 相较于其他的模块系列,需要理解的概念偏多。...nodejs 提供给开发者 API,来定制 4 种类型的流。 实现可写流 继承 Writable 类,需要重写_write()方法。并且在实现中必须调用callback()函数,无论成功失败。..._data); }); 实现可读流 继承 Readable 类,需要重写_read 方法。内部通过 push 方法来推入数据。...,也要重写可读流的_read 方法。...转换流的实现是不同的,它需要重写_transform 方法,来接收并产生输出。
个人原创,如需转载,请联系作者 URL模块用于解析和处理URL字符串,提供了三个方法: parse format resolve parse方法 将URL解析成一下几部分: href:原始url...布尔值用来确定queryString是否要用querystring模块来解析,默认为false。...with=query¶m=that#about' } > format方法 format方法与parse方法相反,它用于根据某个对象生成URL字符串。...host: 'www.nodejs.org', ... port: null, ... hostname: 'www.nodejs.org', ......with=query¶m=that#about' resolve方法 resolve(from, to)方法用于拼接URL,它根据相对URL拼接成新的URL。
ReadStream 与 WriteStream 在 nodejs 中,stream 是个非常重要的库。很多库的 api 都是基于 stream 来封装的。
常用函数 文件操作相关的模块。...具体用法,可以参考Node.js文档:http://nodejs.cn/api/fs.html fs.stat/fs.statSync:访问文件的元数据,比如文件大小,文件的修改时间 fs.readFile...删除非空文件夹:使用fs-extra 第三方模块来删除。
Nodejs的OS模块 Node.js os 模块提供了一些基本的系统操作函数。...我们可以通过以下方式引入该模块: var os = require("os") 序号 方法 描述 1 os.tmpdir() 返回操作系统的默认临时文件夹。
读了 os 模块的文档,研究了几个有意思的问题: ? 识别操作系统平台 ? 理解和计算“平均负载” ? 理解和计算“cpu 使用率” ? 理解和计算“内存使用率” ?...查看运行时间 识别操作系统平台 nodejs 提供了os.platform()和os.type(),可以用来识别操作系统平台。...在 nodejs 中,直接调用os.loadavg()可以获得 1、5 和 15 分钟的平均负载,它和 unix 命令uptime返回值一样。 为什么需要关心平均负载这个问题呢?...这个功能,nodejs 如何实现呢? 第一步:封装getCPUInfo(),计算获取 cpu 花费的总时间与空闲模式花费的时间。...借助 nodejs 接口,实现非常简单: function getMemUsage() { return 1 - os.freemem() / os.totalmem(); } 查看运行时间 nodejs
process 模块是 nodejs 提供给开发者用来和当前进程交互的工具,它的提供了很多实用的 API。从文档出发,管中窥豹,进一步认识和学习 process 模块: 如何处理命令参数?...uncaughtException 事件 Nodejs 可以通过 try-catch 来捕获异常。如果异常未捕获,则会一直从底向事件循环冒泡。...process.exit() vs process.exitCode 一个 nodejs 进程,可以通过 process.exit() 来指定退出代码,直接退出。...所以,nodejs 的一个编程原则是尽量缩短每一个事件的执行事件。process.nextTick 的作用就在这,将一个大的任务分解成多个小的任务。...参考文章 Nodejs v12 Stream 文档 Nodejs v12 process 文档 nodejs 学习笔记 一篇文章构建你的 NodeJS 知识体系 Node.js - 进程学习笔记
Buffer 作为 nodejs 中重要的概念和功能,为开发者提供了操作二进制的能力。...来加深对 Buffer 的理解和使用: 认识缓冲器 如何申请堆外内存 如何计算字节长度 如何计算字节长度 如何转换字符编码 理解共享内存与拷贝内存 认识 Buffer(缓冲器) Buffer 是 nodejs...const buf = Buffer.alloc(1); console.log(buf); // output: 如何申请堆外内存 Buffer 可以跳出 nodejs 对堆内内存大小的限制。...nodejs12 提供了 4 种 api 来申请堆外内存: Buffer.from() Buffer.alloc(size[, fill[, encoding]]) Buffer.allocUnsafe...例如对于生成 Buffer 实例的from(),不同类型的参数,nodejs 底层的行为是不同的。 为了更形象地解释,请看下面两段代码。
常用函数 path模块供了一些工具函数,用于处理文件与目录的路径 path.basename:返回一个路径的最后一部分 path.dirname:返回一个路径的目录名 path.extname:返回一个路径的扩展名...f:/aaa/bbb/test.jpg console.log(path.normalize("F:/a\\b\\c/d")); //f:\a\b\c\d 输出: C:\Program Files\nodejs...\node.exe path-demo.js __filename: d:\03-BlockChain\06_nodejs课程\day43_nodejs_day01\code\Node01\path-demo.js...path-demo.js d:\03-BlockChain\06_nodejs课程\day43_nodejs_day01\code\Node01 .jpg F:\aaa\bbb\test.jpg F:
心谭博客这段字符串的编码结果是: %E5%8E%9F%E6%96%87%E5%9C%B0%E5%9D%80%EF%BC%9A%E5%BF%83%E8%B0%AD%E5%8D%9A%E5%AE%A2 参考链接 Nodejs
读了 path 模块的文档,研究了几个有意思的问题: ?️ 路径片段分隔符 vs 路径定界符 ?️ path.join() vs path.resolve() ?️...为了解决这个问题,nodejs 也提供了path.win32和path.posix来解决这个问题。 例如,我在我的 mac 上想解析一段 windows 路径格式的数据,拿到它的 basename。
领取专属 10元无门槛券
手把手带您无忧上云