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


版权声明:本文为potato123232原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。