3.path路径模块

目录

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值