node.js--02.关于路径拼接问题

一.问题描述与展示

笔者在E:\这是阿朔的文件夹\CSDN\2024.10.28创建了一个js文件

还在E:\这是阿朔的文件夹\CSDN\2024.10.28\Files创建了一个文件

如果按正常路径读取是没问题的

const fs = require('fs')

fs.readFile('./Files/01-readFile()方法.txt',(err, dataStr) => {
    if(dataStr){
        console.log('读取文件成功', dataStr.toString())
    }else{
        console.log('读取文件失败', err)
    }
})

但是如果我不想在当前文件夹读取了,我想在上级文件夹读取就会出现一个问题

这里我们看到文件是执行成功了的,但是却出现了文件读取失败的问题

二.问题发生原因

因为node.js中在使用读写等方法的时候会以当前所处文件夹+在读写中输入的地址进行拼接

三.问题解决方法

1.使用绝对路径(不建议)

我们可以在使用读写方法时候使用绝对路径,但是这种方法可移植性很差所以不建议使用

const fs = require('fs')

fs.readFile('E:/这是阿朔的文件夹/CSDN/2024.10.28/Files/01-readFile()方法.txt',(err, dataStr) => {
    if(dataStr){
        console.log('读取文件成功', dataStr.toString())
    }else{
        console.log('读取文件失败', err)
    }
})

 2.使用__dirname

node.js给我们提供了一些固定的变量以方便我们解决此类问题,__dirname就是其中之一

__dirname:此变量表示当前文件所处的文件路径

const fs = require('fs')

fs.readFile(__dirname + '/Files/01-readFile()方法.txt',(err, dataStr) => {
    if(dataStr){
        console.log('读取文件成功', dataStr.toString())
    }else{
        console.log('读取文件失败', err)
    }
})

猜你喜欢

转载自blog.csdn.net/m0_63541756/article/details/143308845