Node中的_dirname和_filename
1、_dirname:可以动态获取用来获取文件模块所属目录的绝对路径;
2、_filename:可以动态获取用来获取当前文件的绝对路径;
var fs=require('fs')
//./a.txt相对于当前文件路径;
//./a.txt相对于执行node命令所处的终端路径
//这不是错误,node就是这样设计的;
//就是说,文件操作路径中,相对路径设计就是相对于执行node命令所处的路径
fs.readFile('C:/Users/lpz/index.js','utf8',function(err,data){
if(err){
throw err
}
console.log(data)
})
在文件操作中,使用相对路径是不可靠的,因为在node中文件操作的路径被设计为相对与执行node命令所处的路径,所以为了处理这个问题,把相对路径改为绝对路径就好了。
_dirname和_filename执行是不受执行node命令所属路径影响的。可以用path.join()来辅助拼接。
var fs=require('fs')
//./a.txt相对于当前文件路径;
//./a.txt相对于执行node命令所处的终端路径
//这不是错误,node就是这样设计的;
//就是说,文件操作路径中,相对路径设计就是相对于执行node命令所处的路径
//fs.readFile('C:/Users/lpz/index.js','utf8',function(err,data){
// if(err){
// throw err
// }
// console.log(data)
//})
fs.readFile(path.join(__dirname),'./a.txt','utf8',function(err,data){
if(err){
throw err
}
console.log(data)
})
//方法2:
//模块中的路径标识和文件操作中的相对路径标识不一致;
//模块中的路径标识就是相对于当前文件模块,不受执行node命令所处路径影响:
require('./b')