学习笔记来源于 哔哩哔哩小满zs的nodejs课程 && 网上搜索的一些资料 小满zs: OS_哔哩哔哩_bilibili 1. 介绍 Node.js的os模块提供了与操作系统进行交互的功能。...一些常用的os模块方法和属性包括: os.platform():返回当前操作系统的平台。 os.arch():返回当前 CPU 架构。...通过os模块,你可以访问这些信息并在你的应用程序中使用它们。你可以根据需要使用这些方法和属性来执行各种操作,例如获取系统信息、处理文件路径、执行系统命令等。 2....os.constants:提供了一些与系统相关的常量,如错误码和信号。
前言path 模块是 nodejs 中用于处理文件/目录路径的一个内置模块,可以看作是一个工具箱,提供诸多方法供我们使用,当然都是和路径处理有关的。...同时在前端开发中 path 模块出现的频率也是比较高的,比如配置 webpack 的时候等。本文是对该模块中一些常用的方法进行介绍,走,一起学习下吧。...需要注意下,nodejs 中所有的模块(内置,自定义)都需要使用 requier 进行导入,一般导入位置在文件顶部。...(将路径片段解析后生成的绝对路径)注意:路径片段如果给出则必须是字符串类型,否则类型错误给定的路径序列从右到左进行处理,每个后续的 path 前置,直到构造出一个绝对路径如果处理完所有给定的 path...结语关于nodejs path 模块,我们今天就说到这里了,虽然 api 不是很多,但是 path 模块在前端的使用频率还是非常高的,所以觉得很值得学习了解一下的。
async模块是为了解决嵌套金字塔,和异步流程控制而生,常用方法有series、parallel、waterfall、parallelLimit、auto、whilst、doWhilst、forever...如果中途发生错误,则将错误传递到回调函数,并停止执行后面的函数 var task1 = function(callback){ console.log("task1"); callback(null...如果中途出错,则立即将err和值传到最终的回调函数,其他未执行完毕的函数将不再执行,但是要占一个位置 也就是说如果第二个方法抛出错误,则返回的数组为['task1','task3'] waterfall...如果中途出现错误,后面的函数将不在执行,之前执行的结果和错误信息将直接传到最终的回调函数,在此不再赘述。...until和whilst相反,当test判断为false的时候执行fn里的方法,为true时跳出, doUntil与doWhilst相反. forever forever就是无限循环了.只有当中途出现错误的时候才会停止
这次研究下 nodejs 的 crypto 模块,它提供了各种各样加密算法的 API。这篇文章记录了常用加密算法的种类、特点、用途和代码实现。其中涉及算法较多,应用面较广,每类算法都有自己适用的场景。...(); Nodejs 提供了 Cipher 类和 Decipher 类,分别用于加密和解密。...给定的密钥长度是有要求的,否则会爆出this[kHandle].initiv(cipher, credential, iv, authTagLength); Error: Invalid key length...的错误...除此之外,crypto 模块还提供了其他算法工具,例如 ECDH 在区块链中有应用。这篇文章没有再记录,感兴趣的同学可以去查阅相关资料。...参考链接 NodeJS docs: crypto 推荐:Node.js 加密算法库 Crypto 推荐:什么是 hash?
Nodejs 提供了 cluster 来支持服务集群的扩展,提高多核 CPU 的利用效率,实现负载均衡,最大程度利用机器性能。...────┴────────┘ Req/Bytes counts sampled once per second. 908k requests in 10.7s, 102 MB read 可以看到,错误请求从...关于检测方法可以看这篇文章《NodeJS 模块研究 - os》。...这些方法在 vemojs 中都有应用,具体可以看这篇文章:《VemoJS 源码拆解》 参考链接 Nodejs 文档 NodeJS 模块研究 - os VemoJS 源码拆解 autocannon 解读...NodeJS 的 Cluster 模块 Node.js 集群(cluster):扩展你的 Node.js 应用
直接上图 node require(X).jpg 参考文献:require() 源码解读
读了 events 模块的文档,研究了几个有意思的问题: ?️ 事件驱动模型 ?️ 优雅的错误处理 ?️ 监听器器队列顺序处理 ?️ 内存管理与防止泄漏 ?...配合 Promise 使用 引用/转载 请声明出处:原文链接: xxoo521.com 事件驱动模型 Nodejs 使用了一个事件驱动、非阻塞 IO 的模型。...events模块是事件驱动的核心模块。很多内置模块都继承了events.EventEmitter。 自己无需手动实现这种设计模式,直接继承EventEmitter即可。...new MyEmitter(); ins.on("test", () => { console.log("emit test event"); }); ins.emit("test"); 优雅的错误处理...ins.on("test", () => { console.log(a); }); ins.emit("test"); 然而,错误并没有捕获,直接抛出了异常。
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 压缩为例,压缩代码如下:...参考链接 Nodejs 文档 30 分钟 HTTP 查漏补缺之 Vary 程序员不得不了解的硬核知识大全
常用函数 文件操作相关的模块。...具体用法,可以参考Node.js文档:http://nodejs.cn/api/fs.html fs.stat/fs.statSync:访问文件的元数据,比如文件大小,文件的修改时间 fs.readFile...删除非空文件夹:使用fs-extra 第三方模块来删除。
而是应该直接打开、读取或写入文件,如果文件不可用则处理引发的错误。 要检查文件是否存在但随后并不对其进行操作,则建议使用 fs.access()。...ReadStream 与 WriteStream 在 nodejs 中,stream 是个非常重要的库。很多库的 api 都是基于 stream 来封装的。
个人原创,如需转载,请联系作者 URL模块用于解析和处理URL字符串,提供了三个方法: parse format resolve parse方法 将URL解析成一下几部分: href:原始url...with=query¶m=that', href: 'http://www.nodejs.org/some/url/?...布尔值用来确定queryString是否要用querystring模块来解析,默认为false。...host: 'www.nodejs.org', ... port: null, ... hostname: 'www.nodejs.org', ......href: 'http://www.nodejs.org/some/url/?
在 nodejs 中,实现各种功能,总避免不了和“数据”打交道,这些数据可能是 Buffer、字符串、数组等等。但当处理大量数据的时候,如何保证程序的稳健性?如何不让内存爆掉呢?...nodejs 提供了 stream 模块,来让开发者更优雅地处理数据。这需要开发者理解“流”的含义,遵循“流”的相关规范,来进行“流”编程。 相较于其他的模块系列,需要理解的概念偏多。...本文主要从以下几个方面深入 stream 模块: 什么是“流”? 流有哪几种类型? 内部缓冲的作用? 流动模式 vs 暂停模式 背压问题 如何产生的? 如何解决背压问题?...如果通过fs.readFile()一次性将 100GB 大文件读入内存,那么可能会发生以下几个问题: 内存错误。本机内存不够,或者超过了 nodejs 的内存限制。 程序性能下降。...参考连接 Nodejs 文档 数据流中的积压问题 通过源码解析 Node.js 中导流(pipe)的实现 Node.js Stream - 基础篇
常用函数 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:
读了 path 模块的文档,研究了几个有意思的问题: ?️ 路径片段分隔符 vs 路径定界符 ?️ path.join() vs path.resolve() ?️...为了解决这个问题,nodejs 也提供了path.win32和path.posix来解决这个问题。 例如,我在我的 mac 上想解析一段 windows 路径格式的数据,拿到它的 basename。...myfile.html console.log(path.win32.basename("C:\\temp\\myfile.html")); // output: myfile.html 对比结果,第一种是错误的
心谭博客这段字符串的编码结果是: %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
Buffer 作为 nodejs 中重要的概念和功能,为开发者提供了操作二进制的能力。...来加深对 Buffer 的理解和使用: 认识缓冲器 如何申请堆外内存 如何计算字节长度 如何计算字节长度 如何转换字符编码 理解共享内存与拷贝内存 认识 Buffer(缓冲器) Buffer 是 nodejs...const buf = Buffer.alloc(1); console.log(buf); // output: 如何申请堆外内存 Buffer 可以跳出 nodejs 对堆内内存大小的限制。...例如对于生成 Buffer 实例的from(),不同类型的参数,nodejs 底层的行为是不同的。 为了更形象地解释,请看下面两段代码。...在操作 Buffer 的过程中,需要特别注意共享和拷贝的区别,发生错误比较难排查。
process 模块是 nodejs 提供给开发者用来和当前进程交互的工具,它的提供了很多实用的 API。从文档出发,管中窥豹,进一步认识和学习 process 模块: 如何处理命令参数?...捕获了错误信息,并且进程以0退出。开发者可以在 uncaughtException 事件中,清除一些已经分配的资源(文件描述符、句柄等),不推荐在其中重启进程。...unhandledRejection", (err, promise) => { console.log(err.message); }); Promise.reject(new Error("错误信息...")); // 未被catch捕获的异常,交由unhandledRejection事件处理 warning 事件 告警不是 Node.js 和 Javascript 错误处理流程的正式组成部分。...参考文章 Nodejs v12 Stream 文档 Nodejs v12 process 文档 nodejs 学习笔记 一篇文章构建你的 NodeJS 知识体系 Node.js - 进程学习笔记
读了 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
领取专属 10元无门槛券
手把手带您无忧上云