3.path路径模块

news2025/2/1 13:10:52

目录

1  路径问题

2  直接给绝对路径

3  用 __dirname 表示绝对路径

4  path模块常用方法

4.1  路径拼接 path.join()

4.2  从路径字符串中解析出文件名 path.basename()

4.3  获取路径中的扩展名 path.extname()


1  路径问题

当我们使用 ./ 或是 ../ 表示相对路径的时候有时会出问题

我现在的路径结构是这样的,我当前想在 1.路径问题.js 读取 成绩.txt

那么我应该这样写

在代码所在的文件夹中执行代码发现没有问题

但当我们不在代码所处的文件夹中执行,发现出现了问题

这是因为在node中,相对路径就是用执行路径拼接的,第一次使用的是 代码所在的路径 进行拼接所以没有问题,第二次使用 不是代码所在的路径 所以拼接有问题。你看它的错误信息就理解这个问题了

我们有下面几种解决方式

2  直接给绝对路径

这样在哪一级目录下读取都没有问题

3  用 __dirname 表示绝对路径

像上面直接给绝对路径会使代码的移植性很差且不利于维护,我们可以用 __dirname 表示绝对路径

__dirname 表示当前文件所处的目录,__filename 表示当前文件的目录及文件名,我们打印出来看一下

  • __dirname与__filename在使用前不需要引入任何模块,他们的返回值都是字符串

只使用__dirname有个缺点就是没办法直接向上翻,因为字符串的拼接会不做任何处理的拼 ./ ../ 这些东西

想解决这个问题就要使用到path模块了

4  path模块常用方法

使用前需要先引入path模块

4.1  路径拼接 path.join()

path.join()可以传入任意多个路径作为参数

path.join()的返回值是字符串

使用path.join()之后我们就可以借助__dirname向上翻了

发现无论在哪一个路径下都可以成功读取

4.2  从路径字符串中解析出文件名 path.basename()

  • path是文件的路径
  • ext是文件的扩展名

如果引入了basename的第二次参数扩展名,那么就会返回不带扩展名的文件名

4.3  获取路径中的扩展名 path.extname()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104390.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小林Coding阅读笔记:操作系统篇之硬件结构,中断问题

前言 参考/导流: 小林coding - 2.6 什么是软中断?学习意义 学习CPU与外设如何去提升处理效率的设计思想,异步机制的理解与借鉴掌握相关的Linux命令,帮助问题排查 相关说明 该篇博文是个人阅读的重要梳理,仅做简单参…

【修饰性PEG供应商】mPEG-DBCO_DBCO mPEG_甲氧基聚乙二醇环辛炔

【产品描述】 西安凯新生物科技有限公司是国内业PEG供应商,可以提供不同分子量的PEG衍生物,小分子PEG的循环节可以做到1-36个,高分子PEG分子量从1000-40000不等,可以修饰的基团有:氨基类,NHBOC类&#xff0…

多层板PCB设计中电源平面相对地平面为什么要进行内缩

大家是否观察过,有一些人绘制的PCB,在GND层和电源层会进行一定程度的内缩设计,那么大家有没有想过为什么要内缩呢。需要搞清楚这个问题,我们需要来先了解一个知识点,那就是“20H”原则: 20H原则主要是为了减…

MySQL的数据结构

阅读目录MySQL 数据结构用 btree 做的为什么不用红黑树叉树呢?什么是 B-Tree(B-树)?什么是 BTree?BTree 相对于 B-Tree 的几点不同MySQL 数据结构用 btree 做的 为什么不用红黑树叉树呢? 不用红黑树是因为…

计算机3D数学基础 旋转的三种表示方法 学习笔记

旋转的三种表示方法:1、矩阵 2、欧拉角 3、四元数 矩阵的缺点,记录旋转角度要记录9个数 欧拉角的heading就是绕着y(绿色轴)轴30 ,容易理解 三种旋转方式的优缺点: 矩阵:缺点:1、上手难,记…

Android常用布局总结之(LinearLayout、TableLayout、GridLayout、RelativeLayout)

一、LinearLayout 线性布局 LinearLayout 是一个视图组,用于使所有子视图在单个方向(垂直或水平)保持对齐。您可以使用 android:orientation 属性指定布局方向。 android:orientation,指定布局方向,vertical-竖向布局…

在线点餐网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 管理员: 1、管理门店介绍、联系我们 2、对公告类型、公告信息增删改查 3、对菜品类型、菜品信息增册改查 4…

【计算机考研408】2023考研408相关题目预测总结

目录数据结构选择1-时间复杂度选择2-栈或者队列选择3-二叉树、树、森林选择4-并查集选择5-红黑树选择6-图的概念选择7-图的应用选择8-B树(B-树)选择8-B树选择8-B树与B树的区别选择8-B树与B树的相关应用选择9-查找算法选择10、11-排序算法综合应用题41-算…

UG/NX二次开发Siemens官方NXOPEN实例解析—2.3 Selection_UIStyler

列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析—2.1 AssemblyViewer UG/NX二次开发Siemens官方NXOPEN实例解析—2.2 Selection UG/NX二次开发Siemens官方NXOPEN实例解析—2.3 Selection_UIStyler 列文章目录 文章目录 前言 一、知识点提取 二、案例需求分析 三、…

大数据期末总结

文章目录一、这学期分别接触了Linux,hadoop,hbase,hive1、Linux2、Hadoop3、hbase4、hive二、总结一、这学期分别接触了Linux,hadoop,hbase,hive 1、Linux Linux是一款安全性十分良好的操作系统。不仅有用…

前端监控与前端埋点方案

前端监控与前端埋点方案 https://blog.csdn.net/sinat_36521655/article/details/114650138 ​ 用户行为数据可以通过前端数据监控的方式获得,除此之外,前端还需要实现**性能监控和异常监控。**性能监控包括首屏加载时间、白屏时间、http请求时间和htt…

软件设计师

1.在项目初期的需求并不明确,需要不断同用户进行交流与沟通,分布获取功能要求,在这种情况要采用敏捷开发方法最适合,比如极限编程 2.设计模式包括:创建型,结构型,行为型三大类别。 创建型模式…

UnRaid添加镜像源加速应用安装的正确方法

文章目录0、前言1、寻找适合你网络的最优镜像源1.1、首先点击下图示红框处进入UnRaid的终端1.2、输入如下代码检测每一个镜像源的速度:2、更改镜像源方法2.1、修改Go文件方法2.2、用户自定义脚本方式2.2.1、安装User Scripts插件2.2.2、在User Scripts插件中添加更改…

【自动驾驶环境感知项目】——基于Paddle3D的点云障碍物检测

文章目录1. 自动驾驶实战:基于Paddle3D的点云障碍物检测1.1 环境信息1.2 准备点云数据1.3 安装Paddle3D1.4 模型训练1.5 模型评估1.6 模型导出1.7 模型部署效果1. 自动驾驶实战:基于Paddle3D的点云障碍物检测 项目地址——自动驾驶实战:基于P…

已经拍好的视频怎么加水印?视频加水印方法大分享

现在不管是网课视频,还是一些视频博主自制的vlog,我们都可以在这些视频里面看到水印,它不仅可以防止他人盗用视频,还可以作为自己形象的宣传,吸引流量。不过现在还是有很多小伙伴不知道怎么给视频添加水印。别急&#…

js将图片url转化为base64

将以下代码复制封装于xxx.js文件中&#xff0c;放置在项目文件夹utiles下 /*** 把url转换为 canvas对象* param url 网络图片地址必须服务器设置允许跨域* returns {Promise<any>}*/ export default function urlToCanvas (url) {return new Promise((resolve) > {var…

2022卡塔尔世界杯 | 我与足球的爱恨情仇

超燃世界杯&#xff0c;决战卡塔尔⚽我与足球在生活上的交集一、小学二、中学三、大学&#x1f4bb;我与足球在技术上的碰撞一、与足球有关的题目训练二、使用Java代码做一个足球小游戏&#x1f3c6;2022卡塔尔世界杯冠军 —— 阿根廷yyds一、球队比赛过程二、热门球员介绍三、…

小学生C++编程基础 课程6(共9题)

Go C编程 第1课 神奇的魔笔 Go C编程 第1课 神奇的魔笔_dllglvzhenfeng的博客-CSDN博客_goc编程作品 GoC2018下册 第2课&#xff08;C画图&#xff09; GoC2018下册 第2课&#xff08;C画图&#xff09;_dllglvzhenfeng的博客-CSDN博客 Go C 编程 第3课 魔法自动机 Go C 编程…

C++:类和对象:继承

前言&#xff1a; 继承时面向对象额三大特性之一&#xff1a; 在面向对象中&#xff0c;有些类与类之间存在特殊关系&#xff0c;下级别的类除了拥有上一级别的共性&#xff0c;还有自己的特性&#xff0c;这个时候我们就需要考虑利用继承的技术减重复代码。 1&#xff1a;继承…

Redisson分布式锁

Redisson分布式锁 Redisson 是什么&#xff1f; Redisson是一个Java库&#xff0c;它为Redis服务器提供分布式和可扩展的Java对象和服务&#xff08;Set、Multimap、SortedSet、Map、Lock、Semaphore、CountDownLatch、Publish/Subscribe、Bloom filter等&#xff09;。它允许…