模块概览 在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块。部分因为文档说的不够清晰,部分因为接口的平台差异性。 将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了。.../baz 更多对比例子如下: var path = require('path'); // 假设当前工作路径是 /Users/a/Documents/git-code/nodejs-learning-guide...API说明过于简略了,包括如下: 如果路径为空,返回.,相当于当前的工作路径。 将对路径中重复的路径分隔符(比如linux下的/)合并为一个。 对路径中的.、..进行处理。...接口:path.relative(from, to) 描述:从from路径,到to路径的相对路径。.../api/path.html#path_path 本文摘录自《Nodejs学习笔记》,更多章节及更新,请访问 github主页地址。
文/ 陈映平 来自IMWeb社区 (左右滑动查看代码) 0模块概览 在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块。部分因为文档说的不够清晰,部分因为接口的平台差异性。...nodejs-learning-guide/examples/2016.11.08-node-path // 输出 /Users/a/Documents/git-code/nodejs-learning-guide...API说明过于简略了,包括如下: 如果路径为空,返回.,相当于当前的工作路径。 将对路径中重复的路径分隔符(比如linux下的/)合并为一个。 对路径中的.、..进行处理。...5获取相对路径 接口:path.relative(from, to) 描述:从from路径,到to路径的相对路径。 边界: 如果from、to指向同个路径,那么,返回空字符串。...6.1 path.delimiter linux系统例子: windows系统例子: 7相关链接 官方文档:https://nodejs.org/api/path.html#path_path
nodejs后端的用了express,index.html是一个静态文件。...express.static方法解析 事实上,express.static方法如果传入的是相对路径,express会自己把他转换为绝对路径,我们可以查看下源代码,在express.js找到如下代码: exports.static...nodejs 当前工作目录 current working directory nodejs 当前工作目录是启动Node的目录。也就是说,从哪个目录进去启动node,就返回哪个目录。...直接使用绝对路径。 但是这个绝对路径在不同的机器上又不一样,该如何解决呢?可以考虑使用全局变量__dirname....全局变量__dirname 查看api文档 https://nodejs.org/api/module...
文章目录 1.初识 Node.js Node.js 简介 2.fs 文件系统模块 什么是 fs 文件系统模块 3.path 路径模块 1.初识 Node.js 浏览器中的 JavaScript 的组成部分...能否做后端开发 需要node.js Node.js 简介 什么是 Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 官网地址 https://nodejs.org...+ Node.js 内置 API(fs、path、http等)+ 第三方 API 模块(express、mysql 等) shift+鼠标右键 可以在该目录下打开powershell窗口 在powershell...解决方案:在使用fs模块操作文件时,直接提供完整的路径,不要提供.或…/开头的相对路径,从而防止路径动态拼接的问题。**注意js中写完整路径要用//,不然会被当成转义字符处理。...+ dataStr) }) 3.path 路径模块 path 模块是 Node.js 官方提供的、用来处理路径的模块。
前言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
这次研究下 nodejs 的 crypto 模块,它提供了各种各样加密算法的 API。这篇文章记录了常用加密算法的种类、特点、用途和代码实现。其中涉及算法较多,应用面较广,每类算法都有自己适用的场景。...此类算法一共分为两类: 对称加密(AES):加密和解密使用同一个密钥 非对称加密解密(RSA):公钥加密,私钥解密 对称加密(AES) 查看 nodejs 支持的所有加密算法: crypto.getCiphers...(); Nodejs 提供了 Cipher 类和 Decipher 类,分别用于加密和解密。...除此之外,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 模块的使用
读了 events 模块的文档,研究了几个有意思的问题: ?️ 事件驱动模型 ?️ 优雅的错误处理 ?️ 监听器器队列顺序处理 ?️ 内存管理与防止泄漏 ?...配合 Promise 使用 引用/转载 请声明出处:原文链接: xxoo521.com 事件驱动模型 Nodejs 使用了一个事件驱动、非阻塞 IO 的模型。...events模块是事件驱动的核心模块。很多内置模块都继承了events.EventEmitter。 自己无需手动实现这种设计模式,直接继承EventEmitter即可。
Nodejs 提供了 cluster 来支持服务集群的扩展,提高多核 CPU 的利用效率,实现负载均衡,最大程度利用机器性能。...这里是为了深入理解和学习 cluster 模块。 如何处理进程退出?...关于检测方法可以看这篇文章《NodeJS 模块研究 - os》。...这些方法在 vemojs 中都有应用,具体可以看这篇文章:《VemoJS 源码拆解》 参考链接 Nodejs 文档 NodeJS 模块研究 - os VemoJS 源码拆解 autocannon 解读...NodeJS 的 Cluster 模块 Node.js 集群(cluster):扩展你的 Node.js 应用
nodejs 的 zlib 模块提供了资源压缩功能。例如在 http 传输过程中常用的 gzip,能大幅度减少网络传输流量,提高速度。...本文将从下面几个方面介绍 zlib 模块和相关知识点: 文件压缩 / 解压 HTTP 中的压缩/解压 压缩算法:RLE 压缩算法:哈夫曼树 文件的压缩/解压 以 gzip 压缩为例,压缩代码如下:...参考链接 Nodejs 文档 30 分钟 HTTP 查漏补缺之 Vary 程序员不得不了解的硬核知识大全
直接上图 node require(X).jpg 参考文献:require() 源码解读
ReadStream 与 WriteStream 在 nodejs 中,stream 是个非常重要的库。很多库的 api 都是基于 stream 来封装的。
在 nodejs 中,实现各种功能,总避免不了和“数据”打交道,这些数据可能是 Buffer、字符串、数组等等。但当处理大量数据的时候,如何保证程序的稳健性?如何不让内存爆掉呢?...nodejs 提供了 stream 模块,来让开发者更优雅地处理数据。这需要开发者理解“流”的含义,遵循“流”的相关规范,来进行“流”编程。 相较于其他的模块系列,需要理解的概念偏多。...本文主要从以下几个方面深入 stream 模块: 什么是“流”? 流有哪几种类型? 内部缓冲的作用? 流动模式 vs 暂停模式 背压问题 如何产生的? 如何解决背压问题?...本机内存不够,或者超过了 nodejs 的内存限制。 程序性能下降。过高的内存占用可能会导致频繁触发 GC,影响其他程序的运行。...参考连接 Nodejs 文档 数据流中的积压问题 通过源码解析 Node.js 中导流(pipe)的实现 Node.js Stream - 基础篇
个人原创,如需转载,请联系作者 URL模块用于解析和处理URL字符串,提供了三个方法: parse format resolve parse方法 将URL解析成一下几部分: href:原始url...protocal:url协议 host:主机 host中又包含以下信息: auth:用户认证 port:端口 hostname:主机名 pathname:跟在host之后的整个文件路径 search:...布尔值用来确定queryString是否要用querystring模块来解析,默认为false。...host: 'www.nodejs.org', ... port: null, ... hostname: 'www.nodejs.org', ......href: 'http://www.nodejs.org/some/url/?
常用函数 文件操作相关的模块。...具体用法,可以参考Node.js文档:http://nodejs.cn/api/fs.html fs.stat/fs.statSync:访问文件的元数据,比如文件大小,文件的修改时间 fs.readFile...删除非空文件夹:使用fs-extra 第三方模块来删除。
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 - 进程学习笔记
读了 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() 返回操作系统的默认临时文件夹。
领取专属 10元无门槛券
手把手带您无忧上云