相对路径的弊端

const fs = require('fs')// node在解析相对路径时,会在当前执行node 的目录下进行拼接,所以如果在别的目录执行代码,就会出现读取错误文件的问题// 此时只需要提供绝对路径就可以解决问题fs.readFile('./1.txt', 'utf8', (err, data) => {if (err) {return console.log(err.message);}console.log(data);})
不同目录下执行使用相对路劲的文件时发生错误
使用绝对路径可以解决问题(但很麻烦,且不利于维护)
绝对路径的弊端
虽然使用绝对路径可以解决不同目录下执行node的路径问题,但是绝对路径很长,不利于维护,且一旦文件位置发生改变,这个路径就相当于失效了,一致性非常差。
推荐:node提供的路径解决方法 __dirname
node为每一个可执行的文件都添加了一个成员变量 __dirname (双下划线) ,该变量表示当前执行文件所处的目录路径,可以在node环境中直接使用。所以我们就可以用dirname进行路径的拼接,而不需要提供绝对路径了。同时还有 filename 表示当前执行文件的绝对路径。
// 1.读文件时使用相对路径会出现 如果node在不同目录下执行,则找不到执行文件的问题// 2.可以用绝对路径解决,但绝对路径很长,维护性和移植性都很差,也不建议使用// Node提供了__dirname的内置成员变量,表示该文件当前所处的目录路径,推荐使用__dirname加拼接的方式。const fs = require('fs')console.log('当前路径:' + __dirname);console.log('文件名:' + __filename);fs.readFile(__dirname + '/test.txt', 'utf8', (err, data) => {console.log(data);})
