- __dirname的使用
如果在一个包中使用fs读取文件,而且这个文件(b.js)包含在另外的包(a.js)中
那么读取文件时候的参考的路径不是以当前的包(b.js)作为参考值
是以包含这个包(b.js)的包(a.js)作为参考路径
如果当对应的文件的目录非常深的时候,我们不容易设置
所以我们需要借助 __dirname
__dirname:在哪里使用,就是表示当前文件所在的 目录
例如如果当前文件的全路径是 c:/share/nodeday02/text1/b.js,那么__dirname 表示 c:/share/nodeday02/text1
我们可以使用__dirname表示绝对路径,但是采用的是相对的形式
- b.js文件(读取b.txt文件)
var fs = require('fs');
/*如果在一个包中使用fs读取文件,而且这个文件(b.js)包含在另外的包(a.js)中
* 那么读取文件时候的参考的路径不是以当前的包(b.js)作为参考值
* 是以包含这个包(b.js)的包(a.js)作为参考路径
* 如果当对应的文件的目录非常深的时候,我们不容易设置
* 所以我们需要借助__dirname
* __dirname:在哪里使用,就是表示当前文件所在的 目录
* 例如如果当前文件的全路径是 c:/share/nodeday02/text1/b.js
* 那么__dirname 表示 c:/share/nodeday02/text1
* 我们可以使用__dirname表示绝对路径,但是采用的是相对的形式*/
fs.readFile(__dirname + '/b.txt',function (err,data) {
if (err){
console.log('读取错误');
return;
}
console.log(data);
});
- a.js文件(读取b.js文件)
var b = require('./test1/b.js');
a的输出与b的输出是相同的,因为源于b.txt。
由于b.js被a.js包含,所以文件目录比较复杂。所以借助__dirname表示当前文件所在的目录。