node.js 路径问题&&path模块

221 阅读1分钟

一. 路径的相对与绝对

  • 相对路径

      - ./index.html  指的是当前目录下的文件
      - index.html  同上,也是指的是当前目录下的文件
      - ../index.html  指的是上一级目录下的文件
    
  • 绝对路径

       - 以盘符开头   D:/index.html
       - 以/开头   /index.html  指的是所在磁盘根目录下的文件
    

使用相对路径时会产生的bug:

当我们使用 fs 模块的方法对文件执行某些操作时,常常会使用到文件的路径,如果我们使用相对路径,可能就会出现一些问题。

例如,fs.readFile('./index.html',err=>{})

如果我们终端命令行所在的工作目录发生了改变,如下:

2327.png

2328.png

那么执行相同的命令,第二个就会报错,因为相对路径并不是相对于执行文件(node xxx),而是相对于终端命令行所在的工作目录的!!!所以我们通常会使用绝对路径,这就要用到__dirnamepath模块了!!

__dirname可以理解为一个全局变量,保存的是文件所在的目录的绝对路径!!

二. path 模块

《常用方法》 2329.png

(1) path.resolve()

这个方法比较经常使用,常用来拼接绝对路径:

fs.readFile(path.resolve(__dirname,'./index.html'),err=>{})
(2) path.parse()

解析路径并返回相关参数的对象:

2330.png