前言path 模块是 nodejs 中用于处理文件/目录路径的一个内置模块,可以看作是一个工具箱,提供诸多方法供我们使用,当然都是和路径处理有关的。...同时在前端开发中 path 模块出现的频率也是比较高的,比如配置 webpack 的时候等。本文是对该模块中一些常用的方法进行介绍,走,一起学习下吧。...需要注意下,nodejs 中所有的模块(内置,自定义)都需要使用 requier 进行导入,一般导入位置在文件顶部。...dirname,filename__dirname:可以看作是 nodejs 中的全局变量,它始终表示当前执行文件所在目录的完整目录名(绝对路径)__filename:可以看作是 nodejs 中的全局变量...结语关于nodejs path 模块,我们今天就说到这里了,虽然 api 不是很多,但是 path 模块在前端的使用频率还是非常高的,所以觉得很值得学习了解一下的。
对于文件处理的四个操作 增删改查 简称 curd(create-update-read-del) 需要使用到的模块叫File System 简称fs 是nodejs 自带的一个库 const fs=require...('fs'); 1、使用 fs.mkdir 创建目录css image.png 2、fs.readdir 读取当前目录下的文件node02 同步读取 异步读取 同步读取时候 用try...catch 处理报错 异步 直接用回调函数中的参数处理。...image.png 3、fs.rename 重命名html 下的index为base image.png 4、 fs.unlink 删除文件t.txt image.png
一个网址url分段解析如图 image.png 主要是对nodejs中的url模块 在拿到url的时候 对url的一种解析操作 例如 const url = require('url'); let
首先需要引入fs模块 const fs = require('fs'); 1.fs.stat 检测是文件还是目录 fs.stat('.
想用nodejs的xlsx模板实现一个小功能,可以批量解析多个excel表,且能对其中的数据进行操作后,导出新表。...主要实现功能为将多个表,每个表多个sheet中的具体一列数据由加密变成解密,这里主要是base64解密,需要解析的表放在import文件夹下,需要导出的表导出到output文件夹下,实现如下: const.../import/'+filename); // 读取excel文件 const sheetNames = workbook.SheetNames; //获取表名称数组 let wb =...Object.keys(output);// 获取所有的单元格名称数组 let ref = keys[0]+':'+keys[keys.length - 2]; //定义一个字符串 也就是表的范围...filename.split('.').pop(); xlsx.writeFile(wb,path.resolve(__dirname,'output',filename)); //将数据导出为excel
这次研究下 nodejs 的 crypto 模块,它提供了各种各样加密算法的 API。这篇文章记录了常用加密算法的种类、特点、用途和代码实现。其中涉及算法较多,应用面较广,每类算法都有自己适用的场景。...hash 算法具有以下特点: 不能从 hash 值倒推原数据 不同的输入,会有不同的输出 好的 hash 算法冲突概率更低 正因为 hash 算法的这些特点,因此 hash 算法主要用于:加密、数据检验...(); Nodejs 提供了 Cipher 类和 Decipher 类,分别用于加密和解密。...、数据加密算法,还有专门用于签名和验证的算法。...整理完这篇笔记,我才理清楚了常见的加密算法的功能和用途。 除此之外,crypto 模块还提供了其他算法工具,例如 ECDH 在区块链中有应用。这篇文章没有再记录,感兴趣的同学可以去查阅相关资料。
async模块是为了解决嵌套金字塔,和异步流程控制而生,常用方法有series、parallel、waterfall、parallelLimit、auto、whilst、doWhilst、forever...如果中途出错,则立即将err和值传到最终的回调函数,其他未执行完毕的函数将不再执行,但是要占一个位置 也就是说如果第二个方法抛出错误,则返回的数组为['task1','task3'] waterfall...依次执行,前一个函数的输出为后一个函数的输入,这是使用最多的一个方法,解决多个异步嵌套很是方便。...如果中途出现错误,后面的函数将不在执行,之前执行的结果和错误信息将直接传到最终的回调函数,在此不再赘述。...,执行的顺序是倒序.前一个fn的输出是后一个fn的输入.有数据交互,调用方法:compose(fn1,fn2,fn3...) var task1 =function(m,callback){ console.log
广播需要父子进程之间进行通信,多用于消息下发、数据共享。cluster 是基于 child_process 模块的,所以通信的做法和 child_process 区别不大。...cluster 模块中有 2 个 exit 事件:一个是 Worker 上的,仅用于工作进程中;另一个是主进程上,任何一个工作进程关闭都会触发。...关于检测方法可以看这篇文章《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即可。...前一段代码的输出就变成了: error msg is a is not defined 监听器队列顺序处理 对于同一个事件,触发它的时候,函数的执行顺序就是函数绑定时候的顺序。...但是如果想让新的监听器放入任何监听器队列的任何位置呢?在原型链上封装了 insertListener 方法。
直接上图 node require(X).jpg 参考文献:require() 源码解读
nodejs 的 zlib 模块提供了资源压缩功能。例如在 http 传输过程中常用的 gzip,能大幅度减少网络传输流量,提高速度。...本文将从下面几个方面介绍 zlib 模块和相关知识点: 文件压缩 / 解压 HTTP 中的压缩/解压 压缩算法:RLE 压缩算法:哈夫曼树 文件的压缩/解压 以 gzip 压缩为例,压缩代码如下:...,服务器通过 Content-Encoding 消息头来告诉浏览器(客户端)实际用于编码的算法。...压缩算法:哈夫曼树 哈夫曼树的原理是:出现频率越高的字符,用尽量更少的编码来表示。...参考链接 Nodejs 文档 30 分钟 HTTP 查漏补缺之 Vary 程序员不得不了解的硬核知识大全
nodejs 提供了 DNS 查询和操作的 API,本篇的目录是: 什么是 DNS 解析? dns.resolve*() vs dns.lookup() 什么是反向域名解析?...dns.resolve*() vs dns.lookup() 在 dns 模块中,提供了两类解析的 API:resolve*() 和 loopup()。...", "[2001:4860:4860::8888]:1053" ]); 如果不想影响其他的解析模块,那么可以新建一个 Resolver 类,更改类的 dns 服务器: const { Resolver...} = require("dns"); const resolver = new Resolver(); resolver.setServers(["4.4.4.4"]); 参考链接 Nodejs DNS...Doc Node.js:DNS 模块的使用
张培跃 ID:laozhangsishu 不止于前端 关注 因为在node当中的大部分功能模块都依赖了events,所以events模块是Nodejs当中非常重要的模块之一。...//引入events模块 const EventEmitter = require("events"); //myEmitter继承EventEmitter类 class myEmitter extends...//引入events模块 const EventEmitter = require("events"); //myEmitter继承EventEmitter类 class myEmitter extends...//引入events模块 const EventEmitter = require("events"); //myEmitter继承EventEmitter类 class myEmitter extends...//引入events模块 const EventEmitter = require("events"); //myEmitter继承EventEmitter类 class myEmitter extends
个人原创,如需转载,请联系作者 URL模块用于解析和处理URL字符串,提供了三个方法: parse format resolve parse方法 将URL解析成一下几部分: href:原始url...hash:片段部分,也就是URL#之后的部分 示例: var url = require("url") var myurl="http://www.nodejs.org/some/url/?...with=query¶m=that#about' } parse方法有两个参数:url字符串与一个可选的布尔值。...布尔值用来确定queryString是否要用querystring模块来解析,默认为false。...with=query¶m=that#about' resolve方法 resolve(from, to)方法用于拼接URL,它根据相对URL拼接成新的URL。
常用函数 文件操作相关的模块。...具体用法,可以参考Node.js文档:http://nodejs.cn/api/fs.html fs.stat/fs.statSync:访问文件的元数据,比如文件大小,文件的修改时间 fs.readFile...删除非空文件夹:使用fs-extra 第三方模块来删除。...fs.watchFile:监视文件的变化 代码示例 'use strict' let fs = require("fs"); let path = require("path"); let fs2 =...一番准备同步一些学习视频到B站,欢迎关注一番码客的B站主页。 一番雾语:一番新建了B站主页,欢迎关注。
nodejs 提供了 stream 模块,来让开发者更优雅地处理数据。这需要开发者理解“流”的含义,遵循“流”的相关规范,来进行“流”编程。 相较于其他的模块系列,需要理解的概念偏多。...本文主要从以下几个方面深入 stream 模块: 什么是“流”? 流有哪几种类型? 内部缓冲的作用? 流动模式 vs 暂停模式 背压问题 如何产生的? 如何解决背压问题?...本机内存不够,或者超过了 nodejs 的内存限制。 程序性能下降。过高的内存占用可能会导致频繁触发 GC,影响其他程序的运行。...例如:net.Socket Transform:转换流,它是 Duplex 流的一种。它用于在读写过程中,加工数据。例如:zlib 内部缓冲的作用? 在文档开头部分,就用一节专门提到了“缓冲”。...,使用可读流上的pipe()函数,或者 stream 模块的pipeline()函数。
node 的fs文档密密麻麻的 api 非常多,毕竟全面支持对文件系统的操作。文档组织的很好,操作基本分为文件操作、目录操作、文件信息、流这个大方面,编程方式也支持同步、异步和 Promise。...它是一个索引值,操作系统可以根据它来找到对应的文件。 在 fs 的很多底层 api 中,需要用到文件描述符。在文档中,描述符通常用fd来代表。...ReadStream 与 WriteStream 在 nodejs 中,stream 是个非常重要的库。很多库的 api 都是基于 stream 来封装的。...例如下面要说的 fs 中的 ReadStream 和 WriteStream。 fs 本身提供了 readFile 和 writeFile,它们好用的代价就是性能有问题,会将内容一次全部载入内存。...但是对于几 GB 的大文件,显然会有问题。 那么针对大文件的解决方案自然是:一点点读出来。这就需要用到 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
Nodejs的OS模块 Node.js os 模块提供了一些基本的系统操作函数。...我们可以通过以下方式引入该模块: var os = require("os") 序号 方法 描述 1 os.tmpdir() 返回操作系统的默认临时文件夹。...2 os.endianness() 返回 CPU 的字节序,可能的是 “BE” 或 “LE”。 3 os.hostname() 返回操作系统的主机名。...代码示例 // 读取系统的cpu的信息 const os = require('os') // os.cpus() // 返回一个对象数组,包含所安装的每个 CPU/内核的信息:型号、速度(单位 MHz...在我的单核腾讯云CentOS7系统下的运行结果如下图所示: ?
领取专属 10元无门槛券
手把手带您无忧上云