Node.js 文件操作路径和模块路径
文件操作路径
文件操作中的路径可以省略 ./
相对路径的写法有:./data/a.txt
和 data/a.txt
绝对路径的写法有:/data/a.txt
和 c:/xx/xx...
相对路径是相当于当前目录找文件。绝对路径是在文件模块所处磁盘根目录找文件。
例如:
在当前目录的下有一个 data 文件和一个 “00-模块标识中的 gang.js” 的文件。data文件下有 “a.txt” 和 “foo.js” 两个文件。
要读取data文件中的 “a.txt” 文件,正确的文件操作路径写法应该是 ./data/a.txt
和 data/a.txt
。
错误的写法是/data/a.txt
和 c:/xx/xx...
,因为它们表示的是 C:\data\a.txt
,即在c盘根目录中找data文件。
//在文件操作中
// ./data/a.txt 相当于当前目录
// data/a.txt 相当于当前目录
// /data/a.txt 绝对路径,相当于文件模块所处磁盘根目录(第一个/ 表示磁盘根目录。不加点. 会在c盘下找data)
// c:/xx/xx... 绝对路径
fs.readFile('/data/a.txt',function (err,data){
// [Error: ENOENT: no such file or directory, open 'C:\data\a.txt']
console.log(err);
if(err){
return console.log('读取失败');
}else{
console.log(data.toString());
}
});
模块操作路径
在模块加载中,相对路径中的 ./不能省略。
相对路径的写法是:require('./data/foo.js')
绝对路径的写法是:require('/data/foo.js')
// 这里如果忽略了 . 则也是磁盘根目录
// Error: Cannot find module '/data/foo.js'
require('/data/foo.js');
// 正确的相对路径
require('./data/foo.js');
// 模块加载路径中的相对路径不能省略 ./