path路径处理

471 词
path路径处理

path模块-路径处理#

问题:Node.js代码中,相对路径是根据 终端所在路径 来查找的,可能无法找到想要的文件

例如,有这样的文件结构: js>(test>003.js)+test.txt ,在003.js代码中,读取文件的路径写作 ../test.txt ,这样就会出错

原因就是在Node.js运行时是按照终端所在的路径来查找

建议:在Node.js代码中,使用 绝对路径

补充: __dirname 内置变量(获取当前模块目录-绝对路径)

  • windows:D:\xxxx\xxxx\xxx\self_node\js
  • mac:/Users/xxxx/xxx/self_node/js

注意: path.join() 会使用特定于平台的分隔符,作为定界符,将所有给定的路径片段连接在一起

path.join('03','dist/js','index.js')
// windows: '03\dist\js\index.js'
// mac: '03/dist/js/index.js'

语法:

  1. 加载path模块
  2. 使用path.join方法,拼接路径
const path = require('path')
path.join('路径1','路径2',...)

实测#

文件结构不变,003.js如下

const fs = require('fs')
// 1.引入path模块对象
const path = require('path')
// 2.调用path.join()配合__dirname组成目标文件的绝对路径
const filePath = path.join(__dirname, '../test.txt')
fs.readFile(filePath, (err, data) => {
    if (err) {
        console.log(err)
    } else {
        console.log(data.toString())
    }
})

结果如图: