nodejs path模块

path 模块是 Node.js 官方提供的、用来处理路径的模块。

路径拼接 path.join()

注意 .../ 会抵消前面的路径

./ 会被忽略

JavaScript 复制代码
const path=require('path');
const pathStr=path.join('/a','/b');
console.log(pathStr);//  输出 \a\b\

const pathStr2=path.join('/a','/b/c','../','./d','e');
console.log(pathStr2);//输出  \a\b\d\e   ../将它前一个路径 /c 抵消了 

为什么用path.join拼接路径,不直接用字符串+号拼接?

JavaScript 复制代码
const path=require('path');
const pathStr=path.join(__dirname,'./test/01.txt');
console.log(pathStr);//   输出D:\StudyAndhi\nodejs\path_module\test\01.txt

使用"+"号拼接,多了一个.都会导致路径获取错误,相比之下,path.join拼接路径更好用

JavaScript 复制代码
const pathStr=path.join(__dirname+'./test/01.txt');
console.log(pathStr);//   输出D:\StudyAndhi\nodejs\path_module.\test\01.txt

获取路径中文件名 path.basename()

使用 path.basename() 方法,可以获取路径中的最后一部分,常通过该方法获取路径中的文件名

语法:

path.basename(path, ext)

参数:

path: 文件路径

ext: 文件扩展名

例子,从一个文件路径中,获取文件的名称部分

只传文件路径,得到路径的最后一部分

传路径和文件扩展名,得到文件名称部分

JavaScript 复制代码
const path=require('path');
const fpath='./test/demo.txt'
const nameWithoutExt =path.basename(fpath,'.txt');
console.log(nameWithoutExt);//  demo

const full_name=path.basename(fpath); 
console.log(full_name);//  demo.txt

获取路径中文件扩展名 path.extname()

带反斜杠不是js文件路径吗?

JavaScript 复制代码
const path = require('path')

const fpath = '/a/b/c/index.html'
const fext = path.extname(fpath)
console.log(fext);//  .html

const path2 = '/a/add.js';
const ext2 = path.extname(path2)
console.log(ext2);//.js

参考:

https://brucecai55520.gitee.io/bruceblog/notes/nodejs/node.html#初识-nodejs

相关推荐
新时代牛马3 分钟前
cyclictest 毛刺从哪来?从ftrace、latencytop、perf到IRQ/调度延迟定位
android·开发语言·python·kotlin
三84414 分钟前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker
计算机魔术师31 分钟前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
IvanCodes38 分钟前
Python 基础语法(七):推导式与常见遍历写法
开发语言·python
暮雨哀尘40 分钟前
Java 基础练习(一):创建类并调用对象
java·开发语言
wing981 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
Highcharts.js1 小时前
常见报错排雷指南2:导出失败的官方解法
javascript·react.js·ecmascript·highcharts·可视化图表·导出模块失败·导出服务
EatFan1 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
zhangzeyuaaa1 小时前
Python requests:raise_for_status() 与 4xx/5xx 异常层次详解
开发语言·python
泡海椒1 小时前
动态代理核心原理:JQuick-Java接口规则自动生成机制解析
java·开发语言·python