Node.js实战项目学习系列(5) node基础模块 path
前言
前面已经学习了很多跟Node相关的知识,譬如开发环境、CommonJs,那么从现在开始要正式学习node的基本模块了,开始node编程之旅了。
path
path 模块提供用于处理文件路径和目录路径的实用工具。 它可以使用以下方式访问:
const path = require('path');
【path.normalize(path)】
path.normalize() 方法规范化给定的 path,解析 '..' 和 '.' 片段。
11_path_normalize.js
const { normalize } = require('path');
// 输入两个不规范的路径
console.log( normalize('usr/local//bin') );
console.log( normalize('usr/local/../bin') );
输出结果:
【path.join([...paths])】
path.join() 方法使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。
11_path_join.js
const { join } = require('path');
console.log(join('/usr','local','bin/')); // 传入3个路径,且中间的路径不规则
输出:
【path.resolve([...paths])】
path.resolve() 方法将路径或路径片段的序列解析为绝对路径。如果没有传入 path 片段,则 path.resolve() 将返回当前工作目录的绝对路径。
11_path_resolve.js
const { resolve } = require('path');
console.log(resolve('./')); // 看下当前的路径的绝对路径
输出:
【basename、extname、dirname】
basename: 返回 path 的最后一部分,类似于 Unix 的 basename 命令。 尾部的目录分隔符将被忽略
extname: 返回 path 的扩展名,从最后一次出现 .(句点)字符到 path 最后一部分的字符串结束。
dirname: 返回 path 的目录名,类似于 Unix 的 dirname 命令。 尾部的目录分隔符将被忽略
const { basename, dirname, extname } = require('path');
const filePath = '/usr/local/bin/e.text';
console.log(basename(filePath));
console.log(dirname(filePath));
console.log(extname(filePath));
输出:
【parse、format】
parse: 方法返回一个对象,其属性表示 path 的重要元素。 尾部的目录分隔符将被忽略
format: 从对象返回路径字符串。 与 path.parse() 相反
const { parse, format} = require('path');
const filePath = '/usr/local/node_modules/n/package.json';
console.log(parse(filePath));
console.log(format(parse(filePath)));
输出:
【sep、delimiter、win32、posix】
sep:提供平台特定的路径片段分隔符:Windows 上是 \。POSIX 上是 /。
delimiter:提供平台特定的路径定界符:; 用于 Windows ,: 用于 POSIX
win32:属性提供对特定于 Windows 的 path 方法的实现的访问
posix: 属性提供对 path 方法的 POSIX 特定实现的访问。
const { sep, delimiter, win32, posix } = require('path');
console.log('sep: ', sep);
console.log('win sep: ', win32.sep);
console.log('PATH', process.env.PATH);
console.log('delimiter: ', delimiter);
console.log('win delimiter: ', win32.delimiter);
输出:
最后对之前接触过的路径做一个总结:
- __dirname , __filename 总是返回文件的绝对路径
- process.cwd() 总是返回执行node命令所在文件夹
小结
通过本文我们学习了path模块的一些用法,文章只是列举了一些常用的方法,具体可以去node的官方文档查看更多方法。
Node.js实战项目学习系列(5) node基础模块 path的更多相关文章
- Node.js实战项目学习系列(4) node 对象(global、process进程、debug调试)
前言 在之前的课程我们学习了Node的模块化规则,接下来我们将学习下 Node的几个新特性:global ,process进程,debug调试 global 跟在浏览器中的window一样都是全局变量 ...
- Node.js实战项目学习系列(1) 初识Node.js
前言 一直想好好学习node.js都是半途而废的状态,这次沉下心来,想好好的学习下node.js.打算写一个系列的文章大概10几篇文章,会一直以实际案例作为贯穿的学习. 什么是node Node.js ...
- Node.js实战项目学习系列(2) 开发环境和调试工具
前言 上一节让我们对Node.js有一个初步的了解,那么现在可以开始正式学习下Node.js的开发了,但是任何一门语言要设计到开发,就必须先学习开发环境以及调试.本文将主要讲解这些内容. 本文涉及到的 ...
- Node.js实战项目学习系列(3) CommonJS 模块化规范
前言 想开始编写Node.js代码,那么我们就必须先熟悉它的模块化规范CommonJS,本文将详细讲解CommonJS规范 本文代码 >>> github 地址 CommonJS N ...
- iKcamp团队制作|基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备
安装搭建项目的开发环境 视频地址:https://www.cctalk.com/v/15114357764004 文章 Koa 起手 - 环境准备 由于 koa2 已经开始使用 async/await ...
- 前端(Node.js)(3)-- Node.js实战项目开发:“技术问答”
1.Web 与 Node.js 相关技术介绍 1.1.Web应用的基本组件 web应用的三大部分 brower(GUI)<==>webserver(business logic.data ...
- 开始连载啦~每周2更共11堂iKcamp课|基于Koa2搭建Node.js实战项目教学(含视频)| 课程大纲介绍
- Node.js实战10:“流”是Node.js最强大的功能之一。
流是Nodejs的高级应用,掌握流的使用,才能真正胜任NodeJS开发. Nodejs中,流是基于事件的API,用于管理和处理数据,而且效率很好! 什么是流? 流是一个抽象接口,Node 中有很多对象 ...
- Node.js 实战 & 最佳 Express 项目架构
Node.js 实战 & 最佳 Express 项目架构 Express Koa refs https://github.com/xgqfrms/learn-node.js-by-practi ...
随机推荐
- 如何制作中文Javadoc包,并导入到Eclipse
原理:使用chm转换工具将chm文件转换为zip文件,导入eclipse中即可. 准备 JDK1.9 API 中文 谷歌翻译版:http://www.pc6.com/softview/SoftView ...
- LeetCode算法题-Construct String from Binary Tree(Java实现)
这是悦乐书的第273次更新,第288篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第141题(顺位题号是606).构造一个字符串,该字符串由二叉树中的括号和整数组成,并具 ...
- Git的可视化工具SourceTree管理代码 SourceTree的使用
出处:https://blog.csdn.net/android_zhengyongbo/article/details/72885860 其他参考资料https://www.cnblogs.com/ ...
- rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较
Kafka作为时下最流行的开源消息系统,被广泛地应用在数据缓冲.异步通信.汇集日志.系统解耦等方面.相比较于RocketMQ等其他常见消息系统,Kafka在保障了大部分功能特性的同时,还提供了超一流的 ...
- php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
本文实例总结了php常用数组array函数.分享给大家供大家参考,具体如下: array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 案例: <?php ...
- 013_实践HTTP206状态:部分内容和范围请求
HTTP 2xx范围内的状态码表明了:"客户端发送的请求已经被服务器接受并且被成功处理了".HTTP/1.1 200 OK是HTTP请求成功后的标准响应,当你在浏览器中打开www. ...
- 001_JavaScript数组常用方法总结及使用案例
一. https://msdn.microsoft.com/zh-cn/library/ff679976(v=vs.94).aspx 二.ip地址转换成对应的二进制. const ip='172.16 ...
- PHP中生成UUID
一.什么是UUID 简单的说UUID就是一串全球唯一的(16进制)数字串. UUID的全拼为“Universally Unique Identifier”,可以译为“通用唯一识别码”.UUID由开源软 ...
- ARC089E GraphXY 构造
传送门 在Luogu上评了"NOI"之后评级变成了"普及+/提高"--我觉得我可能要退群了 考虑构造一个这样的图: 其中上半部分是从\(S\)开始的一条长\(1 ...
- Docker启动的问题解决笔记
一.错误信息1:解决VM 与 Device/Credential Guard 不兼容 错误原因: 1.出现此问题的原因是Device Guard或Credential Guard与Workstati ...