__filename指的是文件的绝对路径;
__dirname指的是文件所在的目录的绝对路径;
具体示例如下:
a,js
var test2=require("./b.js");
console.log('a.js filenameis '+__filename);
console.log('a.js dirname is '+__dirname);
b.js
console.log('b.js filenameis '+__filename);
console.log('b.js dirname is '+__dirname);
a.js和b.js处于同级目录,运行结果为:
b.js filenameis C:\Users\Administrator\Desktop\winter\b.js
b.js:1
b.js dirname is C:\Users\Administrator\Desktop\winter
b.js:2
a.js filenameis C:\Users\Administrator\Desktop\winter\a.js
a.js:2
a.js dirname is C:\Users\Administrator\Desktop\winter
a.js:3
a.js改为
var test2=require("./subdir/b.js");
console.log('a.js filenameis '+__filename);
console.log('a.js dirname is '+__dirname);
b.js不变
运行结果为:
b.js filenameis C:\Users\Administrator\Desktop\winter\subdir\b.js
b.js:1
b.js dirname is C:\Users\Administrator\Desktop\winter\subdir
b.js:2
a.js filenameis C:\Users\Administrator\Desktop\winter\a.js
a.js:2
a.js dirname is C:\Users\Administrator\Desktop\winter
a.js:3
所以,都是绝对路径,看需要的是带文件名的还是只要目录