动态绝对路径
- 概述: 在每个模块中,除了
require
,exports
等相关API之外,还有两个其他成员: - 成员:
__dirname
: 动态获取当前文件模块所属目录的绝对路径。__filename
: 动态获取当前文件的绝对路径。
文件操作
- **背景:**在文件操作中,使用相对路径不可靠,因为在Node中文件操作的路径是相对于执行node命令所处的路径。
- **方案:**把相对路径变成绝对路径。
- 此时可以使用
__dirname
和__filename
成员。 - 在拼接的过程中,为避免手动拼接带来的低级错误,推荐使用
path.join()
来辅助拼接。
-
例子:
fs.readFile(path.join(__dirname,'./a.txt'),'utf8',function (err, data) { if (err) { throw err; } else{ console.log(data); } });
-
注意:
- 为了避免上述问题,以后文件操作中所有的相对路径都转换为动态绝对路径
- 模块中的路径标识(require)和这里的路径没关系,不受影响。