开发者学堂课程【Node.js 入门与实战:_dirname 和_filename 获取正在执行的js文件的路径】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/588/detail/8252
_dirname 和_filename 获取正在执行的 js 文件的路径
一、获取正在执行的 js 文件路径示例
//读写文件中的路径问题
//例如读取hello.txt文件
var fs = require(‘fs’); // 下载文件搜索模块
// 此处的./相对路径,相对的是执行node命令的路径
// 而不是相对于正在执行的这个js文件来查找h
ello.txt
fs.readFile(‘./hello.txt’,’utf8’,function(err,data)){
//调用方法
if(err){
throw err;
}
console.log(data);
});
读取文件
测试结果:
代码不变换执行方式:
切换到D盘下执行C盘下03文件:文件路径写全
报写错误,以大写字母E报异常,因为相对路径错误。
//解决在文件读取中./相对路径的问题
//解决:__dirname、__filename
// __dirname:表示,当前正在执行的js文件所在的目录
// __filename:表示,当前正在执行的js文件的完整路径
console.log(_dirname);
console.log(_filename);//这两个代码始终表示当前执行文件所在的目录,并不会随在不同目录下执行而变化。
先进入C盘文件目录下,测试结果如下:
切到D盘下,执行同样文件,测试结果如下:
解决方法:
var fs = require(‘fs’);
var filename = _dirname + ‘\\’ + ‘hello.txt’;
fs.readFile(
filename
,’utf8’,function(err,data)){
if(err){
throw err;
}
console.log(data);
});
C盘下执行结果(无误):
D盘下执行结果(无误):
//无论在任何目录下执行文件,读取目录始终正确