12 - __dirname的使用

  • __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表示当前文件所在的目录。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容