内置模块的基本使用(删除文件) const fs = require("fs"); /** * 删除文件 * @param {string} "....相对路径的问题 路径问题 NodeJs中的相对路径是相对于执行js文件的终端工具路径而言。 const fs = require("fs"); fs.readFile("....和路径相关的变量 获取当前文件所在目录 __dirname 获取当前文件的绝对路径 __filename 以上两个变量不需要定义即可使用。...因此要读取的文件可以使用此变量进行拼接。...安装 npm install nodemon -g 使用 nodemon 文件名 ?
学习笔记来源于 哔哩哔哩小满zs的nodejs课程 && 网上搜索的一些资料 小满zs: OS_哔哩哔哩_bilibili 1. 介绍 Node.js的os模块提供了与操作系统进行交互的功能。...一些常用的os模块方法和属性包括: os.platform():返回当前操作系统的平台。 os.arch():返回当前 CPU 架构。...通过os模块,你可以访问这些信息并在你的应用程序中使用它们。你可以根据需要使用这些方法和属性来执行各种操作,例如获取系统信息、处理文件路径、执行系统命令等。 2....open方法的实现 使用场景是什么呢?...在我们使用前端构建工具的时候,里面都会涉及到跨平台的问题,根据不同的操作系统,执行不同的shell命令.
模块概览 nodejs的核心模块,基本上都是stream的的实例,比如process.stdout、http.clientRequest。...对于大部分的nodejs开发者来说,平常并不会直接用到stream模块,只需要了解stream的运行机制即可(非常重要)。.../sample.txt').pipe(process.stdout); Stream分类 在nodejs中,有四种stream类型: Readable:用来读取数据,比如 fs.createReadStream...Readable Stream 以下都是nodejs中常见的Readable Stream,当然还有其他的,可自行查看文档。...(chunk){ // 文件读取完成,文件内容是 [你好,我是程序猿小卡] console.log('文件读取完成,文件内容是 [%s]', content); }); 例子三: 这里使用了
本文摘录自《Nodejs学习笔记》,更多章节及更新,请访问 github主页地址。...模块概览 nodejs的核心模块,基本上都是stream的的实例,比如process.stdout、http.clientRequest。...对于大部分的nodejs开发者来说,平常并不会直接用到stream模块,只需要了解stream的运行机制即可(非常重要)。...Readable Stream 以下都是nodejs中常见的Readable Stream,当然还有其他的,可自行查看文档。...(chunk){ // 文件读取完成,文件内容是 [你好,我是程序猿小卡] console.log('文件读取完成,文件内容是 [%s]', content); }); 例子三: 这里使用了
async模块是为了解决嵌套金字塔,和异步流程控制而生,常用方法有series、parallel、waterfall、parallelLimit、auto、whilst、doWhilst、forever...其他未执行完毕的函数将不再执行,但是要占一个位置 也就是说如果第二个方法抛出错误,则返回的数组为['task1','task3'] waterfall 依次执行,前一个函数的输出为后一个函数的输入,这是使用最多的一个方法
这次研究下 nodejs 的 crypto 模块,它提供了各种各样加密算法的 API。这篇文章记录了常用加密算法的种类、特点、用途和代码实现。其中涉及算法较多,应用面较广,每类算法都有自己适用的场景。...此类算法一共分为两类: 对称加密(AES):加密和解密使用同一个密钥 非对称加密解密(RSA):公钥加密,私钥解密 对称加密(AES) 查看 nodejs 支持的所有加密算法: crypto.getCiphers...(); Nodejs 提供了 Cipher 类和 Decipher 类,分别用于加密和解密。...两者都继承 Transfrom Stream,API 的使用方法和哈希函数的 API 使用方法类似。...除此之外,crypto 模块还提供了其他算法工具,例如 ECDH 在区块链中有应用。这篇文章没有再记录,感兴趣的同学可以去查阅相关资料。
前言path 模块是 nodejs 中用于处理文件/目录路径的一个内置模块,可以看作是一个工具箱,提供诸多方法供我们使用,当然都是和路径处理有关的。...同时在前端开发中 path 模块出现的频率也是比较高的,比如配置 webpack 的时候等。本文是对该模块中一些常用的方法进行介绍,走,一起学习下吧。...需要注意下,nodejs 中所有的模块(内置,自定义)都需要使用 requier 进行导入,一般导入位置在文件顶部。...dirname,filename__dirname:可以看作是 nodejs 中的全局变量,它始终表示当前执行文件所在目录的完整目录名(绝对路径)__filename:可以看作是 nodejs 中的全局变量...结语关于nodejs path 模块,我们今天就说到这里了,虽然 api 不是很多,但是 path 模块在前端的使用频率还是非常高的,所以觉得很值得学习了解一下的。
直接上图 node require(X).jpg 参考文献:require() 源码解读
nodejs 提供了 DNS 查询和操作的 API,本篇的目录是: 什么是 DNS 解析? dns.resolve*() vs dns.lookup() 什么是反向域名解析?...所以对于 dns.lookup() ,它虽然在使用上是异步的方式,但是可能阻塞进程,导致严重的性能问题。...更多的电子邮件提供商是使用反向域名解析系统查找来确认信息是从哪里来的。由于这种方式的使用变得更广泛,那些没有正确地发布反向域名解析系统信息的域可能更常发生邮件的退回。...} = require("dns"); const resolver = new Resolver(); resolver.setServers(["4.4.4.4"]); 参考链接 Nodejs DNS...Doc Node.js:DNS 模块的使用
Nodejs 提供了 cluster 来支持服务集群的扩展,提高多核 CPU 的利用效率,实现负载均衡,最大程度利用机器性能。...这里是为了深入理解和学习 cluster 模块。 如何处理进程退出?...关于检测方法可以看这篇文章《NodeJS 模块研究 - os》。...这些方法在 vemojs 中都有应用,具体可以看这篇文章:《VemoJS 源码拆解》 参考链接 Nodejs 文档 NodeJS 模块研究 - os VemoJS 源码拆解 autocannon 解读...NodeJS 的 Cluster 模块 Node.js 集群(cluster):扩展你的 Node.js 应用
读了 events 模块的文档,研究了几个有意思的问题: ?️ 事件驱动模型 ?️ 优雅的错误处理 ?️ 监听器器队列顺序处理 ?️ 内存管理与防止泄漏 ?...配合 Promise 使用 引用/转载 请声明出处:原文链接: xxoo521.com 事件驱动模型 Nodejs 使用了一个事件驱动、非阻塞 IO 的模型。...events模块是事件驱动的核心模块。很多内置模块都继承了events.EventEmitter。 自己无需手动实现这种设计模式,直接继承EventEmitter即可。...const { listener } = item; that.once(name, listener); } }); return true; }; 使用起来...我知道的常见做法如下: 经常 CR,移除不需要的事件监听器 通过once绑定监听器,调用一次后,监听器被自动移除 [推荐]hack 一个更安全的EventEmitter TODO: 配合 Promise 使用
nodejs 的 zlib 模块提供了资源压缩功能。例如在 http 传输过程中常用的 gzip,能大幅度减少网络传输流量,提高速度。...本文将从下面几个方面介绍 zlib 模块和相关知识点: 文件压缩 / 解压 HTTP 中的压缩/解压 压缩算法:RLE 压缩算法:哈夫曼树 文件的压缩/解压 以 gzip 压缩为例,压缩代码如下:...response.pipe(zlib.createBrotliDecompress()).pipe(output); break; // 或者, 只是使用...参考链接 Nodejs 文档 30 分钟 HTTP 查漏补缺之 Vary 程序员不得不了解的硬核知识大全
常用函数 文件操作相关的模块。...具体用法,可以参考Node.js文档:http://nodejs.cn/api/fs.html fs.stat/fs.statSync:访问文件的元数据,比如文件大小,文件的修改时间 fs.readFile...删除非空文件夹:使用fs-extra 第三方模块来删除。
个人原创,如需转载,请联系作者 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 提供了 stream 模块,来让开发者更优雅地处理数据。这需要开发者理解“流”的含义,遵循“流”的相关规范,来进行“流”编程。 相较于其他的模块系列,需要理解的概念偏多。...本机内存不够,或者超过了 nodejs 的内存限制。 程序性能下降。过高的内存占用可能会导致频繁触发 GC,影响其他程序的运行。...readable 事件回调触发的条件: 有新的数据 流到达尽头 由于处于暂停模式,因此在事件回调函数中,需要使用 read()来读取数据。...此时使用 pause()来切换到暂停模式,待消费者可以处理时,再调用 resume()恢复流动模式。 背压问题 如何产生的?...pipe()函数,或者 stream 模块的pipeline()函数。
同步写法 不推荐使用同步 api,会阻塞线程。 try { const buf = fs.readFileSync("....它们返回 Promise 对象而不是使用回调。 API 可通过 require('fs').promises 访问。如此一来,开发成本更低了。...err; console.log(stats); }); 注意,关于检查文件是否存在: 不建议在调用 fs.open()、 fs.readFile() 或 fs.writeFile() 之前使用...要检查文件是否存在但随后并不对其进行操作,则建议使用 fs.access()。 ReadStream 与 WriteStream 在 nodejs 中,stream 是个非常重要的库。
读了 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(),这会导致事件循环中的任务直接不被处理,以及可能导致数据的截断和丢失(例如 stdout 的写入)。...但在 nodejs 中请使用 nextTick 而不是 setTimeout,前者效率更高,并且严格来说,两者创建的事件在任务队列中顺序并不一样(请看前面的代码)。...参考文章 Nodejs v12 Stream 文档 Nodejs v12 process 文档 nodejs 学习笔记 一篇文章构建你的 NodeJS 知识体系 Node.js - 进程学习笔记
Nodejs的OS模块 Node.js os 模块提供了一些基本的系统操作函数。...我们可以通过以下方式引入该模块: var os = require("os") 序号 方法 描述 1 os.tmpdir() 返回操作系统的默认临时文件夹。...12 os.cpus() 返回一个对象数组,包含所安装的每个 CPU/内核的信息:型号、速度(单位 MHz)、时间(一个包含 user、nice、sys、idle 和 irq 所使用 CPU/内核毫秒数的对象...require('os') // os.cpus() // 返回一个对象数组,包含所安装的每个 CPU/内核的信息:型号、速度(单位 MHz)、时间(一个包含 user、nice、sys、idle 和 irq 所使用
领取专属 10元无门槛券
手把手带您无忧上云